簡體   English   中英

SQL Server中的復合聚簇索引

[英]Composite Clustered Index in SQL Server

我有一個表IDENTITY列作為主鍵(經典ID列)。

SQL Server自動為該主鍵創建聚簇索引。

我的問題是:

  • 我可以只有一個具有更多列的CLUSTERED INDEX復合材料嗎?

如果是,我如何刪除默認聚簇索引並重新創建具有此屬性的新索引。

感謝您的支持

是的,每個表只能有一個聚簇索引 - 數據是由該索引物理排列的,因此您不能有多個索引。

但是,我不建議使用復合聚簇索引。 為什么? 因為聚集索引應始終為:

  • 盡可能小--4字節的INT是完美的
  • 穩定 - 永遠不會改變,所以你沒有通過所有索引進行波紋更新
  • 唯一的 - 否則,SQL Server必須使用人工的4字節值“統一”您的條目
  • 最佳的將是:不斷增加

INT IDENTITY非常適合作為聚簇索引 - 我建議你保持這種方式。

聚集索引列(或列集)也會添加到同一個表上每個非聚簇索引的每個條目中 - 因此,如果使聚簇索引大,20,50個字節或更多,則會開始浪費大量空間 - 在磁盤上和服務器的內存中,這通常會降低系統性能。

閱讀所有關於聚集索引的內容以及它們應該是什么樣的好聚簇索引:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM