0

只是一个基本的问题...

添加更多过滤器会提高表扫描的性能吗?

例如,如果我有一个包含很多 NULL 值的列的表,但我只寻找 > 35 的值。

这样做更快WHERE something IS NOT NULL AND something > 35还是我应该坚持使用WHERE something > 35.

运行 MS SQL Server 2005。

4

1 回答 1

3

这两种配方在功能上是等效的。

进行全表扫描时,开销在于将页面加载到页面缓存中。进行测试是计算工作的最小部分。如果 NULL 检查两次,性能上的差异可能无法衡量。

之间的选择:

 where something > 35

where something > 35 and something is not null

是查询的表达能力的问题。我更喜欢明确并在where子句中检查 NULL。但是,两者是等价的。

于 2013-03-28T13:49:20.717 回答