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

T-SQL 進階:SQL Server 索引概念、B 樹原理與儲存架構完整解析

     編輯:關於SqlServer

索引本質

索引是增強式結構,無索引仍可運作,但有索引可大幅提升查詢效能(特別是 OLAP)。索引與叢集索引表皆採用 B-tree 平衡多路搜尋樹。

為何選 B-tree?

  • SQL Server 最小儲存單位 = 頁面 (8 KB),不可分割,讀取必須整頁讀取。
  • 磁碟 I/O 掃描最耗時,B-tree 設計目標:最小化磁碟頁面讀取次數。
  • 根節點常駐記憶體,僅需 3–4 次頁面躍點即可定位葉層頁面。

Heap vs B-tree 實測對比

同一張表:

  • Heap(無叢集索引):全表掃描,邏輯讀取數極高。
  • 建立叢集索引後:B-tree 結構,同樣查詢邏輯讀取數大幅下降。

關鍵相關概念

  • 填充因子:預留頁面空間減少分裂。
  • 碎片:邏輯順序與物理順序不一致,需重建/重組。
  • 檔案群:將索引放置不同檔案群分散 I/O。

B-tree 結構示意

Heap 表結構

建立叢集索引後邏輯讀取對比

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