我正在使用SQL 2000,並且在包含大約3000萬行的表上運行簡單的select語句。選擇查詢如下所示:優化選擇查詢
select col1, col2, col3 from Table1 where [email protected] and [email protected] and [email protected]
表中有一個聚集索引(即主鍵),但沒有用作where條件。上面提到的所有標準都沒有索引。
如何優化此查詢?
如果我在where子句中爲每列添加索引,那會有什麼區別嗎?
如果我在where子句中有10個列,那麼這10個列中的所有列都有索引嗎?
編輯:這可能是最常見的面試問題之一:)
指數功效神奇!謝謝....但只是好奇,有沒有其他方法可以用來更快地做出這樣的查詢? – Bhaskar 2010-02-05 12:44:55
@Bhaskar:是的,你可以走得更遠。分析執行計劃,看看最需要的是什麼。最有效的索引取決於表中包含的數據以及它的變化量。如果表中有許多插入/更新/刪除操作,則應檢查索引的碎片並在索引趨向於碎片時指定填充因子。 – Guffa 2010-02-05 13:00:57