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

SQL Server 執行引擎入門:資料存取運算子深度解析

     編輯:關於SqlServer

執行引擎角色

查詢優化器選定最低成本計畫後,執行引擎負責實際執行每個運算子。

資料存取運算子分類

運算子資料結構存取方式適用情境
Table ScanHeap(堆疊)掃描所有頁面無叢集索引、需全表資料
Clustered Index ScanB-tree(叢集索引)從最左葉節點掃描至最右需大部分資料、無搜尋條件
Nonclustered Index ScanB-tree(非叢集索引)掃描索引所有葉層覆蓋索引、需大部分索引資料
Clustered Index SeekB-tree從根節點單一路徑向下尋找高選擇性條件、範圍查詢
Nonclustered Index SeekB-tree同叢集索引求高選擇性、覆蓋索引或需 Key Lookup

Bookmark Lookup (Key Lookup / RID Lookup)

非叢集索引未覆蓋所有查詢欄位時,需回叢集索引(Key Lookup)或堆疊(RID Lookup)取得剩餘欄位。優化器依據預估行數決定 Scan vs Seek+Lookup。

運算子圖示辨識

  • Scan:圖示顯示雙向箭頭掃描葉層。
  • Seek:圖示顯示單一路徑從根至葉。
  • Lookup:圖示顯示巢狀迴圈連接圖示(Nested Loops Join 圖示)。

Table Scan 圖示

Clustered Index Scan 圖示

Nonclustered Index Scan 圖示

Clustered Index Seek 圖示

Bookmark Lookup 圖示

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