我有一个带有主键和两个外键的表,它们都允许 NULLS。
当我为每两列分别创建索引时,查询运行大约 2-3 秒并返回大约 300000 行。
当我为这两个列创建复合非聚集索引时,对于相同数量的行,查询运行大约 10 分钟。
重要的是要注意两列出现在 WHERE 条件中并与 OR 子句一起使用,如下所示:
Select
SomeColumn
From
SomeTable
Where
FirstColumn = x OR SecondColumn = x
执行查询的平台是 SQL 2008 R2。
为什么在这两种情况下执行时间会有如此大的差异?