我试图找出处理SQL Server中的表索引的最佳方法.
我有一张桌子,只需要阅读.没有真正的写入表(初始设置后).
我在表中有大约5-6列需要索引.为整个表设置一个非聚簇索引并将我需要索引的所有列添加到该索引是否更有意义,还是应该为每个列设置多个非聚簇索引?
我想知道哪种设置会有更好的读取性能.
对此的任何帮助都会很棒.
更新:
已经有一些好的答案,但我想详细说明我的需求.
有一个主表有自动记录.我需要能够对超过100MM的记录执行非常快速的计数.where语句会有所不同,但我试图索引where语句中的所有可能列.所以我会有这样的疑问:
SELECT COUNT(recordID) FROM tableName WHERE zip IN (32801, 32802, 32803, 32809) AND makeID = '32' AND modelID IN (22, 332, 402, 504, 620)
或类似的东西:
SELECT COUNT(recordID) FROM tableName WHERE stateID = '9' AND classCode IN (3,5,9) AND makeID NOT IN (55, 56, 60, 80, 99)
因此,大约有5-6列可以在where子句中,但它会在哪些列上有很大不同.