索引本質
索引是增強式結構,無索引仍可運作,但有索引可大幅提升查詢效能(特別是 OLAP)。索引與叢集索引表皆採用 B-tree 平衡多路搜尋樹。
為何選 B-tree?
- SQL Server 最小儲存單位 = 頁面 (8 KB),不可分割,讀取必須整頁讀取。
- 磁碟 I/O 掃描最耗時,B-tree 設計目標:最小化磁碟頁面讀取次數。
- 根節點常駐記憶體,僅需 3–4 次頁面躍點即可定位葉層頁面。
Heap vs B-tree 實測對比
同一張表:
- Heap(無叢集索引):全表掃描,邏輯讀取數極高。
- 建立叢集索引後:B-tree 結構,同樣查詢邏輯讀取數大幅下降。
關鍵相關概念
- 填充因子:預留頁面空間減少分裂。
- 碎片:邏輯順序與物理順序不一致,需重建/重組。
- 檔案群:將索引放置不同檔案群分散 I/O。


