我试图找出在 SQL Server 中处理表上的索引的最佳方法。
我有一张只需要读取的表格。没有真正写入表(在初始设置之后)。
表中有大约 5-6 列需要索引。为整个表设置一个非聚集索引并将我需要索引的所有列添加到该索引是否更有意义,或者我应该设置多个非聚集索引,每个索引都有一列?
我想知道哪种设置会具有更好的读取性能。
对此的任何帮助都会很棒。
更新:
已经有一些很好的答案,但我想详细说明我的需求。
有一个带有自动记录的主表。我需要能够对超过 100 毫米的记录进行非常快速的计数。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)
因此,where 子句中可能有大约 5-6 列,但在哪些列上会有很大差异。