| 場景 | 推薦索引 | 理由 |
|---|---|---|
| 高選擇性、順序訪問、範圍查詢、主鍵 | 聚集索引 | 物理順序存儲,避免書簽查找,範圍掃描極快 |
| 低選擇性、非順序訪問、精確查找、外鍵、頻繁更新列 | 非聚集索引 | 邏輯指針結構,單表最多 999 個 (SQL 2008+),維護開銷相對小 |
鐵律:每表僅能有一個聚集索引;主鍵默認建聚集索引 (可指定 NONCLUSTERED);外鍵列強烈建議建非聚集索引支援連接/級聯操作。
| 命令 | 模式 | 阻塞 | 適用場景 |
|---|---|---|---|
| ALTER INDEX ... REORGANIZE | 在線 (Online) | 無 (短時鎖頁) | 碎片 10-30%、高併發不能停機、邏輯碎片主導 |
| ALTER INDEX ... REBUILD [WITH (ONLINE=ON)] | 離線/在線 | 離線=Schema鎖/在線=低鎖 | 碎片 >30%、需更新統計、物理碎片嚴重、調整填充因子 |
舊版對應:DBCC INDEXDEFRAG ≈ REORGANIZE,DBCC DBREINDEX ≈ REBUILD。
UPDATE STATISTICS table [index] WITH FULLSCAN、sp_updatestatsDBCC SHOW_STATISTICS、sys.dm_db_stats_properties維護計劃向導 (SSMS) / T-SQL Agent 作業 / Ola Hallengren 腳本 (社區金標準) 執行:
排程建議:低峰期 (如 02:00-04:00),REBUILD 間隔視業務波動 (周/月),REORGANIZE 可日頻。
sys.dm_db_index_usage_stats 刪除未用索引sys.dm_db_missing_index_* 發現潛在索引