小编典典

如何在休眠条件api查询中插入“优化提示”

sql

我有一个使用条件api动态组合在一起的休眠查询。如果按原样执行,它将生成令人难以忍受的缓慢查询。

但是我已经注意到,如果我在查询前加上/ * + FIRST_ROWS(10)* /,它们的速度大约要快1000%。我该如何使用标准API?

我试过criteria.setComment(..),但这似乎被忽略了。

在休眠文档3.4.1.7中。提到了查询提示,但明确指出:“请注意,这些不是SQL查询提示”

查询的结果将被分页,因此在99%的情况下,我将显示结果1-10。


阅读 163

收藏
2021-03-17

共1个答案

小编典典

您可以在会话级别修改优化器模式:

ALTER SESSION SET optimizer_mode = FIRST_ROWS;

在查询之前,然后将其恢复为默认值(ALL_ROWS),或者由于您有99%的查询会从中受益,因此您可以在架构级别(带有ON LOGON示例触发器)甚至在实例上对其进行修改级别(修改init参数)。

2021-03-17