Neo*_*liw 6 java sql oracle optimization query-optimization
在这里我有一个如下查询:
SELECT field
FROM table
WHERE value IN ('val1', 'val2', 'val3', ... 'valn')
Run Code Online (Sandbox Code Playgroud)
假设 IN 子句中有 2000 个值,该值在其他表中不存在。您有什么想法可以加快此操作吗?
这个问题是开放的,可以接受任何类型的方法。
谢谢!
这看起来像是 Java 中的正确方法:http ://knol.google.com/k/oracle-passing-a-list-as-bind-variable#
它类似于 C# 解决方案。您的值列表保留在内存中(没有临时表),并且不会保留到磁盘,并且您使用参数化查询,因此查询执行器不必重新解析每个查询。我没有用java尝试过,但我认为它会很快。