添加过滤器以提高SQL性能

时间:2013-03-28 13:47:18

标签: sql sql-server performance sql-server-2005

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

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

例如,如果我有一个包含大量NULL值的列的表,但我只查找值> 35.

执行WHERE something IS NOT NULL AND something > 35是否更快,或者我应该坚持使用WHERE something > 35

运行MS SQL Server 2005。

1 个答案:

答案 0 :(得分:3)

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

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

之间的选择:

 where something > 35

where something > 35 and something is not null

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