2013-05-02 40 views
1

我有一個非常大的表上有兩個索引,但沒有PK(聚集)索引。還有一個聚集(PK)索引時,非聚集索引性能是否會增加?

如果表上還有一個聚集索引,兩個索引的性能是否會增加,即使我必須從身份列中「設計」一個索引?

+0

翻閱數據庫[我已經繼承了它:(]並且大多數表格都有很多明智的索引,但沒有PK /聚簇索引 – BlueChippy 2013-05-02 06:40:19

+0

它可能,它可能不會,你應該複製,嘗試應用聚簇索引,並且從你的系統運行一個真實的工作負載,並且 - a)你不需要直接評論你自己的問題/答案 - 如果你有更多的補充,使用編輯鏈接,和b)你應該避免混淆主鍵和聚集索引。這兩個概念是不同的。 – 2013-05-02 06:42:58

+0

需要_RID查找的堆(沒有聚簇索引的表)上的select語句將在存在聚簇索引時使用_bookmark lookup_。有一些論點認爲書籤查找效率低於RID查找。所有這些都在特定的場景和工作負載下。你真的需要在測試系統中做一些分析。觀察並比較查詢計劃和性能。 – 2013-05-02 08:44:55

回答

1

精心挑選的聚集索引可以爲您的表現創造奇蹟。爲什麼?聚簇索引定義您的數據物理存儲在硬盤上的方式。選擇一個好的集羣索引將確保您獲得順序IO而不是隨機IO。因此,這是一個巨大的性能提升,因爲大多數數據庫設置的瓶頸都是硬盤驅動器和IO操作。

嘗試在由連接使用的值上創建聚簇索引。

如果您只是將它放在您的主鍵上,您的性能仍會提高,因爲NON_Clustered將使用羣集進行搜索操作,這將避免表掃描。

希望這回答了你的問題