SQL Server 2005 引擎由四大組件組成,各司其職,形成清晰的分層管道:
| 組件 | 職責 | 關鍵關鍵字 |
|---|---|---|
| 協議層 | 接收客戶端 TDS 封包,轉換為內部結構;回傳結果集、錯誤、狀態資訊 | TDS、Shared Memory、Named Pipes、TCP/IP、VIA |
| 關係引擎 | 解析、綁定、優化、編譯查詢計畫;管理執行上下文;向儲存引擎發送資料請求 | Parser、Algebrizer、Optimizer、Query Plan、Exec Context |
| 儲存引擎 | 資料存取 (索引搜尋/掃描)、緩衝池管理、鎖/閂、交易日誌、備份/還原、DBCC、大量匯入 | Buffer Pool、Lock Manager、Log Manager、Access Methods |
| SQLOS | 排程器、記憶體配置器、同步原語、死鎖偵測、I/O 完成埠、CLR 宿主、Extended Events | Scheduler、Memory Broker、Spinlock、Deadlock Monitor |
Memory Broker 動態平衡各組件用量。DEADLOCK_PRIORITY/成本) → 回滾釋放鎖。SQL 2000 無獨立 SQLOS,排程/記憶體/鎖直接耦合在儲存引擎內,難以獨立演進。2005 抽離 SQLOS 使:
| SQL Server 2005 | Oracle | 備註 |
|---|---|---|
| 執行個體 | Instance (SGA + 後台進程) | 概念對等 |
| 資料庫 | Database (資料檔/控制檔/重做日誌) | SQL Server DB ≈ Oracle Tablespace |
| Buffer Pool | Database Buffer Cache | 同功能 |
| Log Manager | LGWR + Redo Log Buffer | 同功能 |
| Scheduler | Dispatcher / Shared Server Processes | 調度模型不同 |
| SQLOS | 無獨立對應 (OS 直接管理) | SQLOS 為 SQL Server 獨有抽象層 |
sys.dm_exec_requests (關係引擎)、sys.dm_os_wait_stats (SQLOS)、sys.dm_db_index_usage_stats (儲存引擎)。