参数绑定导致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中取消了参数绑定,而使用拼接字符串的方式解决。



posted @ 2014-08-25 20:27  梅尔加德斯  阅读(423)  评论(0编辑  收藏  举报