哈囉,今天來講 MS-SQL 查詢的內部處理 ~
從送出查詢語法,到最後呈現結果,主要包含以下五個步驟:
1. 剖析: 剖析 SELECT 語法,分成關鍵字、表達式、運算子、識別碼。
2. 建立查詢樹: 用以描述如何將來源資料變成查詢結果。
3. 最佳化: Query Optimizer 分析存取來源資料表的不同方法。然後從中選擇一系列的步驟,其使用較少資源且能最快的取得查詢結果。
查詢樹會更新以記錄這一系列的步驟。最佳版本的查詢樹被稱為「執行計畫」。
4. 執行查詢: Relational Engine 開始執行「執行計畫」,當取得資料的步驟已被處理後,Relational Engine 要求 Storage Engine 取得需要的資料列集合。
5. 處理結果: Relational Engine 處理從 Storage Engine 取得的資料,將資料轉成查詢結果需要的格式,並回傳至 Client。
上述提到的 Query Optimizer, Relational Engine, Storage Engine 皆為 SQL Server 內的元件。
參考資料:Query Processing Architecture Guide - SQL Server - Microsoft Learn