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

SQL Server 2008 資料庫引擎四大核心組件架構解析

     編輯:關於SqlServer

引擎架構總覽

SQL Server 2008 引擎包含四大核心組件:

  1. 協定層
  2. 關聯引擎
  3. 儲存引擎
  4. SQLOS

1. 協定層

SNI (SQL Server Network Interface)

  • 取代 SQL 2000 的 Net-Libraries 與 MDAC
  • 提供客戶端/伺服器間網路連接 API
  • 支援四種協定:共享記憶體、TCP/IP、命名管道、VIA

TDS (Tabular Data Stream) 端點

  • Microsoft 私有協定,定義資料庫互動格式
  • 安裝時為四種協定各建一端點,啟用後所有用戶可用
  • 專用管理員連接 (DAC) 另有專屬端點
  • TDS 封包經 TCP/IP 傳輸至伺服器

協定層處理流程

  1. 接收 TDS 封包
  2. 解封裝、反序列化,取得請求內容
  3. 將結果、狀態訊息封裝為 TDS 回應客戶端

2. 關聯引擎

又稱查詢處理器,負責查詢編譯、優化、執行。

核心子組件

優化器關鍵流程

  1. 規範化:將查詢分解為合適粒度
  2. 最佳化:成本估算、索引分析、統計資料參考
  3. 輸出:最佳執行計畫

3. 儲存引擎

組件職責
命令剖析器語法檢查、產生查詢樹、查找計畫快取 (以 T-SQL 雜湊值比對)
查詢優化器基於成本模型 (CPU、I/O、記憶體),選擇最低成本執行計畫
SQL 管理器管理預存程序、計畫、自動參數化
資料庫管理器管理編譯/優化所需的中繼資料存取
查詢執行器執行優化器產出的計畫,調度各運算子

4. SQLOS (SQL Server Operating System)

SQL Server 2005 引入,提供作業系統層級服務:

  • 排程器 (Scheduler) - 非搶佔式排程、NUMA 感知
  • 記憶體管理 - 緩衝集區、計畫快取、CLR 記憶體
  • 同步化物件 - Spinlock、Mutex、Latch
  • 死鎖偵測、例外處理、堆疊追蹤
  • 動態管理檢視 (DMV) 基礎設施

查詢處理端到端流程

  1. 客戶端 → SNI → TDS 封包
  2. 協定層解析 → 命令剖析器語法檢查
  3. 查詢優化器產生/重用計畫
  4. 查詢執行器向儲存引擎請求資料
  5. 存取方法 → 緩衝區管理器 (記憶體/磁碟)
  6. 交易管理器確保 ACID
  7. 結果封裝 → TDS → 客戶端
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
組件職責
存取方法掃描資料/索引頁面、建立 OLE DB 資料列集、向緩衝區管理器發出請求
交易管理器含鎖管理器 (並發控制、隔離等級) 與記錄管理器 (WAL、記錄寫入)
緩衝區管理器管理緩衝集區中資料頁面分佈、頁面置換、髒頁寫入