在这里,我有一个如下查询:SELECT fieldFROM tableWHERE value IN (val1, val2, val3, ... valn)假设IN子句中有2000个值,该值在其他表中不存在.你有什么想法加快这个操作吗?这个问题可以接受任何一种方法...

在这里,我有一个如下查询:
SELECT field
FROM table
WHERE value IN ('val1', 'val2', 'val3', ... 'valn')
假设IN子句中有2000个值,该值在其他表中不存在.你有什么想法加快这个操作吗?
这个问题可以接受任何一种方法.
谢谢!
解决方法:
这在Java中看起来是正确的方式:http://knol.google.com/k/oracle-passing-a-list-as-bind-variable#
它类似于C#解决方案.您的值列表保留在内存中(没有临时表),并且它不会持久保存到磁盘并且您使用参数化查询,因此查询执行器不必重新分析每个查询.我没有尝试过java,但我认为它会很快.
织梦狗教程
本文标题为:java – 使用大型“IN”子句优化Oracle SQL


基础教程推荐
猜你喜欢
- zookeeper的watch机制原理解析 2023-01-29
- 纯jsp实现的倒计时动态显示效果完整代码 2023-08-03
- Sqlite长参数与java 7绑定为字符串,而不是java 6 2023-11-01
- Maven导入本地jar包的实现步骤 2023-02-26
- JSP 自动刷新的实例详解 2023-07-31
- JSP中动态合并单元格的实例代码 2023-08-01
- Junit Mockito实现单元测试方法介绍 2023-05-23
- MyBatis映射器mapper快速入门教程 2023-06-01
- Java实现拓扑排序算法的示例代码 2023-03-06
- Spring Boot面试必问之启动流程知识点详解 2023-02-10