索引是獨立的物理資料庫結構,包含表中一或多欄值的集合及指向儲存這些值之資料頁的邏輯指標清單。索引儲存於索引頁面,遠小於資料頁面。查詢時先搜尋索引頁面取得指標,再直接讀取資料頁面。猶如書本目錄,大幅提升檢索效率。
索引與關鍵字/約束關聯緊密。關鍵字分邏輯關鍵字(概念層面)與物理關鍵字(定義索引欄位,即索引本身)。
SQL Server 索引採 B 樹結構維護:根節點 → 0 到多個中間層 → 葉節點(Level 0)。索引欄位越寬,B 樹層次越深,查詢需訪問索引頁越多,效能隨之降低。

圖 8-1 索引 B 樹結構
將表資料依欄位排序後重新儲存,索引與資料合一,葉節點即實際資料。查詢極快,但佔用空間約為資料空間 120%,每表僅能建一個。
結構與資料完全分離,葉節點儲存索引鍵值與列定位器。若資料為叢集索引儲存,定位器為叢集索引鍵;否則為堆儲存結構,定位器為資料列指標。非叢集索引排序與資料頁順序不匹配,需更多儲存空間、查詢效率較低,但每表最多可建 249 個。