在这里,我有一个如下查询: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
基础教程推荐
猜你喜欢
- Springboot打印接口的三种方式分享 2023-04-06
- Java流处理stream使用详解 2023-06-10
- Spring Boot 实现字段唯一校验功能(实例代码) 2023-04-12
- java – 在JSP中更新数据库 2023-10-29
- Java使用EasyExcel进行单元格合并的问题详解 2023-01-18
- 详解Nacos配置中心的实现 2023-05-07
- Java实现List去重的五种方法详解 2023-06-23
- 解读thymeleaf模板引擎中th:if的使用 2023-06-10
- SpringBoot 使用Prometheus采集自定义指标数据的方案 2023-06-06
- java – Hibernate – 本机SQL参数的奇怪顺序 2023-10-30
