|
|
1
4
此数据库限制在Hibernate中仍然存在。如果您的in子句中确实需要1000个以上的项,那么您必须自己在代码中拆分列表,并为每个1000个键的块运行查询,然后将结果集附加在一起。
注意,如果您的查询需要对查询结果进行排序或以其他方式聚合,则此黑客程序会崩溃,因为完整的结果集只在代码中知道。在这种情况下,您最好找到另一种方法来编写不需要
|
|
|
2
3
我们有同样的问题,并通过将它分成100个第条中的包来解决它。
评论:
你为什么要以上几点?这样查询优化器就可以重用查询计划。 其他优化:
示例:in(1,2,3,4,4,…,4) 注:我们在条款中用各种固定数量的元素进行了测试,观察到超过100种元素的性能下降。 |
|
|
3
2
是的,因为Hibernate会在某个阶段调用Oracle,所以该限制是Hibernate和Oracle中的最低限制 Hibernate对in的数据没有什么特别的作用-只是将其传递到数据库 |
|
|
4
1
|
|
|
maddy · 如何根据oracle SQL中的某一列值进行排名 3 年前 |
|
|
kiric8494 · 显示以元音开头和结尾的城市名称 4 年前 |
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 4 年前 |
|
|
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 4 年前 |
|
|
Arifullah · 如何从oracle中的列中删除特定的初始字符? 4 年前 |
|
|
Anar · Oracle SQL用户定义函数 4 年前 |
|
|
user1312312 · 如何为一组表编写通用触发器? 4 年前 |