参数绑定导致java执行查询sql效率低

今天在做一个分页查询的时候,发现一个sql在java端执行超级慢,原sql的格式大概如下:

</pre><pre name="code" class="sql">select a.a1,a.a2
from a 
where a.id in
(select to_number('123') 
union all
(select b.id from b ))

发现在数据库中执行计划非常好,但是在java中执行可能需要两三分钟。

通过网上查看发现,具体原因是在java中使用了参数绑定 ? 和to_number数值类型转换导致oracle索引失效。

所以在java中取消了参数绑定,而使用拼接字符串的方式解决。



欢迎转载,但转载请注明原文链接[博客园: http://www.cnblogs.com/jingLongJun/]
[CSDN博客:http://blog.csdn.net/mergades]。
如相关博文涉及到版权问题,请联系本人。
原文地址:https://www.cnblogs.com/jingLongJun/p/4491082.html