Oracle“平等”快于“不平等”

时间:2013-04-19 10:01:22

标签: performance oracle

我有一个简单的问题:

有人告诉我查询:

select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3 ='aaa'

更快
select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3!='bbb'

我可以理解,在某些情况下,通常a =比!=更快。但在这种情况下,我有一个SUM(b1)。为此我必须阅读所有myTable。

谢谢。 此致

1 个答案:

答案 0 :(得分:3)

有人非常正确。

即使两个查询要从表中投射完全相同的行,也会在只有两个值的列上使用谓词的查询,“1”出现一次而“2”组成剩余的更有可能使用索引:

column = '1'

比以下:

column != '2'

即使有直方图来识别歪斜,你最好还是等于。

http://sqlfiddle.com/#!4/070db/3