我想弄清楚處理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)對於讀取性能也非常重要。 –