T-SQL IS NOT NOT NULL与NOT NULL性能

时间:2012-11-12 08:55:07

标签: sql-server tsql null comparison

我已经阅读了很多不使用负面运算符,例如 NOT IN NOT EXISTS 以及如何将逻辑转换为正运算符,例如使用 IN < / em>而 NOT IN 可以带来非常好的表现。

无论如何,我有很多CASE WHEN运算符和检查某些条件的视图。我想知道(我仍然能够找到任何文章,问题或具体的例子)在使用 IS NOT NULL IS NULL 时会有性能差异吗? / p>

1 个答案:

答案 0 :(得分:3)

两者都可以作为索引寻求进行。

其中一个人在搜索索引的开头时读取NULL的所有行,然后在遇到第一个NOT NULL时停止,另一个搜索到第一个NOT NULL值然后停止阅读整个指数的其余部分。

除非索引覆盖,否则在任何一种情况下都不能使用搜索,因为它归结为选择性。如果您有多个NULL值,因此NOT NULL具有高度选择性,您可能需要考虑在该列as per the example here上创建过滤索引。