良好資料庫設計基礎上,合理使用索引是 SQL Server 高效能關鍵。優化器基於代價模型決定是否使用索引,核心目標:避免全表掃描(讀取所有資料頁),利用索引定位僅需讀取少數頁面。
叢集索引重組資料物理順序,索引頁直接指向資料頁,查找幾乎總是快於非叢集。每表僅一個,建立需 120% 額外空間。
BETWEEN, <, >)、GROUP BY/ORDER BY 極大受益:找到首鍵值,後續行物理毗連,避免大範圍掃描。WHERE 子句與連接類型選擇。pri_order BETWEEN 100 AND 200)GROUP BY/ORDER BY 欄位不重組資料,葉層存索引鍵值+書籤(叢集鍵或 RID)。無叢集索引時最多 250 個非叢集索引。
REBUILD/REORGANIZE 索引消除碎片,UPDATE STATISTICS 刷新統計資訊,防止優化器誤判。sys.dm_db_index_usage_stats 識別未用/低效索引並移除。實踐結論: 索引設計必須建立在查詢負載分析與預測基礎上,正確結合程式存取模式,才能產生最優方案。過度索引與缺乏索引同樣有害。