Sql-Server
如果可能,聲明為唯一的聚集索引是否比未聲明為唯一的聚集索引更高效?
如果適用,
UNIQUE
對聚集索引使用約束是否有助於在任何情況下以任何方式提高性能?
我們必須假設我們正在討論索引中的相同列和相同的數據。(否則我們需要知道這兩個不同的選項。)因此,假設唯一的區別是 create index 命令中的單詞 UNIQUE - 其他一切都是平等的:
儲存的內容不會有所不同。是的,SQL Server 將添加一個 4 字節的隱藏唯一符,但在您獲得重複項之前不會填充該唯一符。而且由於我們假設相同的數據,因此在儲存級別上不會有任何差異。
但是,優化器知道不能有任何重複,這有助於選擇更好的計劃。範例是獲得合併連接的可能性更高,不依賴於統計數據(直方圖或密度)的選擇性知識等。你問多少?不可能說,因為這完全取決於您最終會在多大程度上看到任何差異 - 即計劃。