首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MS SQL 基礎教學:CREATE INDEX 建立索引完整語法與核心參數深度解析 (叢集/非叢集、唯一、複合、包含欄位)

     編輯:關於SqlServer

CREATE INDEX 是建立索引的核心 T-SQL 指令。本文系統解析完整語法與每個參數:UNIQUE (唯一)、CLUSTERED/NONCLUSTERED (叢集/非叢集)、index_name、table/view、column [ASC|DESC] (最多 16 欄位、總長 ≤ 900 bytes)、PAD_INDEX、FILLFACTOR、IGNORE_DUP_KEY、DROP_EXISTING、STATISTICS_NORECOMPUTE、SORT_IN_TEMPDB、ON filegroup、INCLUDE (包含欄位建立覆蓋索引)、WHERE (篩選索引)、ONLINE (線上建立)、DATA_COMPRESSION (資料壓縮)。並說明叢集索引重組資料物理順序、非叢集索引葉節點存鍵值+行定位器 (叢集鍵/RID) 的架構差異。

CREATE INDEX 核心參數速查

參數功能典型值/建議
UNIQUE強制鍵值唯一業務鍵天然唯一時啟用
CLUSTERED資料依索引鍵物理排序每表僅一個,窄/唯一/遞增最佳
NONCLUSTERED獨立索引結構,葉存鍵值+定位器預設,支援多個
FILLFACTOR (0-100)葉層頁面填滿百分比高修改表 70-90,唯讀 100
PAD_INDEX中間層同樣套用 Fill FactorON 配合 Fill Factor
IGNORE_DUP_KEY唯一索引重複值僅警告不報錯ETL 階段臨時啟用
DROP_EXISTING重建時刪除同名現有索引ALTER INDEX REBUILD 替代
INCLUDE (col...)非鍵包含欄位,建立覆蓋索引避免 Key Lookup 關鍵
WHERE predicate篩選索引,僅索引符合條件列稀疏查詢 (如 WHERE Status=1)
ONLINE = ON企業版功能,建立過程不鎖定表生產環境大表必備

叢集 vs 非叢集架構差異

  • 叢集索引:葉節點 = 資料頁,資料物理依叢集鍵排序,表僅一個,空間約資料 120%。
  • 非叢集索引:葉節點 = 索引鍵 + 行定位器 (叢集鍵或 RID),資料物理順序不變,理論上限 249 個/表。

掌握完整語法與參數含義,能精準建立高效索引應對多樣查詢負載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved