当前位置: 首页 > 面试题库 >

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

司马项明
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

ALTER SESSION SET optimizer_mode = FIRST_ROWS;

在查询之前,然后将其恢复为默认值(ALL_ROWS),或者由于您有99%的查询会从中受益,因此您可以在模式级别(例如ON LOGON触发)修改它,甚至在html" target="_blank">实例中级别(修改init参数)。



 类似资料:
  • 问题内容: 我有一个使用条件api动态组合在一起的hibernate查询。如果按原样执行,它将生成令人难以忍受的缓慢查询。 但是我已经注意到,如果我在查询前加上/ * + FIRST_ROWS(10)* /,它们的速度大约要快1000%。我该如何使用标准API? 我试过criteria.setComment(..),但这似乎被忽略了。 在hibernate文档中,3.4.1.7。提到了查询提示,但

  • 问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误

  • 问题内容: 在我当前的项目中,我遇到了使用hibernate条件查询获取实体的问题。我有以下实体: 教授,其中包含学生名单 学生,其中包含作业列表。 作业,其中包含分配到的学生的ID。 现在,我想获得与教授有关的所有作业,即教授分配给他的学生的所有作业。 此查询显示我要在条件查询中实现的内容。 如何使用hibernate条件API实施此查询? 问题答案: 假设您的表格是这样的: 使用别名的简单示例

  • 问题内容: 我有一堂课; 我还有一节课; 我将如何搜索Student ,名字John,lastName Doe? 如果是出生日期属性,我将在日期上创建一个并添加一个相等限制()。我将如何对AppUser对象中的lastName和firstName进行操作? 问题答案: 查询: 要使用条件,请检查此线程 还可以从hibernate文档中查看此页面

  • 问题内容: 我一直在努力寻找可以通过JPA中的方法调用设置的所有提示的权威资源,但我的想法是空的。有人知道很好的参考吗? 问题答案: 请参阅“ 3.4.1.7。查询提示” 。

  • 问题内容: 任何使用条件/ hql / sql告诉我查询的人。要求是用户输入电子邮件或用户名查询从表user返回用户的密码。 问题答案: 如果您正在做的只是获取一个字段,那么您可能只想执行hql(或者可能是sql)。 如果您符合条件,我相信您将撤回整个对象,只是为了最终使用一个字段。 编辑: 这是一个非常广泛的问题。这是一个教程