2
SQL Server會創建任何默認的非聚簇索引嗎?我們是否應該將所有FK都作爲非聚集索引?這裏的權衡是什麼默認情況下,SQL Server是否在表的所有列上創建非聚簇索引
SQL Server會創建任何默認的非聚簇索引嗎?我們是否應該將所有FK都作爲非聚集索引?這裏的權衡是什麼默認情況下,SQL Server是否在表的所有列上創建非聚簇索引
不,SQL Server不會自動創建非聚集索引。
聚集索引是根據主鍵自動創建的,除非CREATE TABLE
聲明另有說明。
是的,我建議索引外鍵列,因爲這些是最有可能加入/搜索反對使用IN
,EXISTS
,等等。但是,請注意,一個低基數值集(性別例如)將是相對無用的,因爲值沒有足夠的差異。
與所有索引的折衷是它們可以加快數據檢索速度,但會減慢數據的插入/更新/刪除。還有需要執行的維護,因爲它們可能會碎片化(如硬盤驅動器),但也可能隨着時間的推移而無法使用。索引也佔用硬盤空間。
謝謝...如果在FK上有非聚簇鍵和非聚簇鍵,我使用它與子表連接會發生什麼情況。它使用什麼掃描?完整,索引查找和索引掃描? – Praneeth
取決於查詢,索引,表格統計信息和優化程序 - 這意味着查看解釋計劃。 –