SQL Server 性能<>,不在,在



在SQL Server中,一个表中大约有4.500.000行。

Status_code可以1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

哪个查询的运行速度最快?

查询 #1:

Select * 
from Table 
where status_code not in (1)

查询 #2:

Select * 
from Table 
where status_code <> 1

查询 #3:

Select * 
from Table 
where status_code in (2, 3, 4, 5, 6, 7, 8, 9, 10)

如果没有索引,您将对每个索引进行相同的表扫描操作,因此成本将是相同的。

当您考虑索引时,查找谓词可能会略有变化。 1 和 2 通常是相同的,因为它有效地引入了相同的谓词(Status_Code <1、Status_Code> 1(。3 的谓词将是每个可能的包含值的相等性检查。

这是否总体上有所不同取决于 - 您需要查看实际的执行计划告诉您的内容。

最新更新