oracle in和exists(in参数大于1000)
(2015-10-26 11:41:40)
标签:
it |
分类: oracle |
“exists”和“in”效率对比
“exists”和“in”是Oracle中,都是查询某集合的值是否存在在另一个集合,但对不同的数据有不同的用法,主要是在效率问题上存在很大的差别,
以下有两个简单例子,以说明“exists”和“in”的效率问题。
1、
Table1数据量小而Table2数据量非常大时,Table1<<Table2 时,exists的查询效率高。
Table1数据量非常大而Table2数据量小时,Table1>>Table2 时,in的查询效率高。
当 in中的参数为多参数组成字符串的处理如:
其中将参数转换为table并通过exists 进行判断因为in的参数过多会导致效率问题。