oracle in 条件超长问题解决
Posted Fight With Me!!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle in 条件超长问题解决相关的知识,希望对你有一定的参考价值。
今天做了个es查询地址条件的需求,在回传给使用应用的过程当中,使用的应用出现了错误:in的条件中多于1000个表达式数会报ORA-01795的提示错误。接下来将in中的条件拆分,超过1000的用Or连接,发现in的效率非常低下。后来搜索到如下的回答之后,修改之后解决:
优化的方法就是id字段加索引,几百万还不算多,加个索引,就可以很快了。 但是不能使用in,因为in是不走索引的。可以将in改为or,select * from A where id=\'1\' or id=\'2\' or id=\'3\'..... 前提是你只用id查询哦,如果有其他条件就将所有条件都加到索引中。
以上是关于oracle in 条件超长问题解决的主要内容,如果未能解决你的问题,请参考以下文章