我想弄清楚处理SQL Server中的表上的索引的最佳方法。SQL Server非聚簇索引
我有一张表,只需要从中读取。没有真正写入表格(初始设置后)。
我有大约5-6列需要被索引的表。为整个表设置一个非聚簇索引并将需要索引的所有列添加到该索引或我应该设置多个非聚簇索引(每个列都有一列)是否更有意义?
我想知道哪个设置会有更好的读取性能。
对此的任何帮助将是伟大的。
UPDATE:
有一些好的答案已,但我想阐述一下我需要多一点。
有一个主表与自动记录。我需要能够对超过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子句中,但它会改变在哪些不少。
您需要提供更多信息,因为答案取决于您要运行的查询类型以及数据的外观,尤其是,基数。此外,您可能受益于计算列,索引视图或全文索引。无法用您提供的最少信息来说。 – RedFilter
仔细选择[聚簇索引](http://stackoverflow.com/questions/11787797)对于读取性能也非常重要。 –