oracle in 条件超长问题解决

摘要:
今天,我们请求查询es的地址条件,在将其发送回用户应用程序的过程中,用户应用程序出错:如果in的条件中有1000个以上的表达式,则会报告ORA-01795提示错误。接下来,将in中的条件拆分,并将1000个以上与Or连接。研究发现,in的效率很低。在搜索以下答案后,对其进行了修改以解决问题:优化方法是引用id字段,该字段不太多。添加索引,可以很快完成。您可以更改为或,从A中选择*,其中或orid='3'前提是您只使用ID进行查询。如果存在其他条件,请将所有条件添加到索引中。

今天做了个es查询地址条件的需求,在回传给使用应用的过程当中,使用的应用出现了错误:in的条件中多于1000个表达式数会报ORA-01795的提示错误。接下来将in中的条件拆分,超过1000的用Or连接,发现in的效率非常低下。后来搜索到如下的回答之后,修改之后解决:

优化的方法就是id字段加索引,几百万还不算多,加个索引,就可以很快了。

但是不能使用in,因为in是不走索引的。可以将in改为or,select * from A where   or   or id='3'.....

前提是你只用id查询哦,如果有其他条件就将所有条件都加到索引中。

  

免责声明:文章转载自《oracle in 条件超长问题解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Git 常用命令总结,将会持续更新关于java中使用split方法末尾空值被丢弃的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

0011.MapReduce编程案例2

目录 05-26-实现自连接的MapReduce程序 05-27-分析倒排索引的过程倒排索引数据处理的过程.png 05-28-使用MapReduce实现倒排索引1 05-29-使用MapReduce实现倒排索引2使用MapReduce实现倒排索引 05-30-使用MRUnit 05-31-第一个阶段小结 05-26-实现自连接的Map...

MySQL数据库之索引

一、什么是索引 索引是一种用于快速查询到匹配条件的数据的数据结构,是用来加快查询的技术。索引对良好的数据库性能来说,是一个非常重要的指标。当表中的数据量越来越大的时,其索引就越来越重要。 基本法则 索引应该构建在被用作《查询条件》的字段上 索引类型 1) B+ Tree索引 BTree树的特性:多路平衡树 树中每个节点最多包含m个子节点...

关于mysql的loose index scan的几点疑问

本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/102 关于MySQL的loose index scan有几点疑问,欢迎看到这篇文章的人一起探讨。 测试表结构: CREATE TABLE `test` ( `id` int(11) NOT NULL default '0...

(转)SqlServer为大数据量表建索引

本文转载自:http://blog.csdn.net/iangujun/article/details/8136764 之前从没有用SqlServer数据库处理过大数据量的表,都是用Oracle,然后一般为数据量较大的表添加索引或主键都是用plsql工具,今天正好需要为一张保存于SqlServer数据库的千万级数据表增加索引,于是遇到了下面一系列的问题。...

pandas之Series

Series是Pandas中最基本的对象,Series类似一种一维数组,在 Series 中包含的数据类型可以是整数、浮点、字符串、Python对象等。 pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False) series的创建: 列表...

Sql Server 索引以及页和区

索引(Index),相信大家都知道就是给表中的数据添加了一个目录,使我们可以快速检索到我们想要的数据,但这个目录是什么?SqlServer又是如何管理的?要搞明白这些,我们就要先了解sqlserver数据库中的页(Page),区(Extents)的概念,如有不对的地方,欢迎拍砖指正。 页(Page) 页是数据存储的最本单位,SqlServer读写也是以页...

最新文章