我想再试一次......
我见过有人说<>是sargable,<>不是苛刻等等,对不起,但我要澄清一下。而我想要的似乎无法获得的是使用<>的错误查询的示例以及使用不同运算符的更SARGable查询。我已经看到了关于如何进行大量查询SARGable的示例,但没有使用<>的示例操作
我已经尝试过一次问这个问题,因为他们认为这不是一个真正的问题,所以它必须在人们头上,但这是一个真正的问题,我想要一个真正的答案,如果我得到一个真正的答案,那么我可以查看我的所有存储过程并更好地决定要更改哪些过程。
谢谢..
答案 0 :(得分:6)
运算符<>
是SARGable,但根据您所比较的内容,它可能没什么用。
参考:http://en.wikipedia.org/wiki/Sargable
“很少提高性能的Sargable运营商:&lt;&gt ;,IN,OR,NOT IN, 不存在,不喜欢“
像=
这样的运算符更有可能提供良好的性能,因为数据库可以从索引中查找单个或有限数量的记录。当您使用<>
运算符时,数据库通常必须扫描整个索引以获取相关记录。
数据库可以对<>
运算符使用索引的查询是否是非唯一索引,并且列中的值很少,因此可以使用多个记录来消除索引,而不仅仅是一个或几个记录。
答案 1 :(得分:0)
维基百科说它是一个很难提高性能的Sargable运算符
Sargable运营商:=,&gt;,&lt;,&gt; =,&lt; =,BETWEEN,LIKE没有领先%
很少提高性能的可攻击运营商:&lt;&gt;,IN,OR,NOT IN,
NOT EXISTS,NOT LIKE非sargable运算符:与前导%
相似