基本select語句的生命週期

2022-02-15 01:10:29 字數 852 閱讀 1342

(1) 客戶端sqlserver網路介面通過一種網路協議(可以是共享記憶體:簡單高速,客戶端和sql server在同一臺計算機預設連線方式;tcp/ip:訪問sql server最常用的一種協議,客戶端指定ip位址和埠號連線到sql server;命名管道:命名管道和tcp/ip協議在體系結構上是類似的,是為區域網設計的,在廣域網中速度會慢一些;via:虛擬介面介面卡,是一種可以讓兩個系統進行高效能通訊的協議,要求通訊兩端使用特殊的硬體和專門連線)和服務的的sni建立了乙個連線,然後通過網路協議連線和tds埠建立乙個連線,並且通過這個連線想sqlserver以tds訊息的形式傳送select語句。

(2)sql server的sni將tds訊息解包,讀取select語句,然後將這個sql命令傳送到命令解析器。

(3)命令解析器在緩衝池的計畫快取中檢查是否已經存在了一條與接收到的語句匹配且可用的查詢計畫,如果找不到,命令解析器則基於select語句生成乙個查詢樹,然後將查詢樹傳遞給查詢優化器,讓其生成查詢計畫。

(4)由於這條查詢命令非常簡單,查詢優化器只是在預優化階段就生成了「零開銷」的查詢計畫(即「普通查詢計畫」),查詢優化器將建立出來的查詢計畫傳送給查詢執行器執行。

(5)查詢執行器在執行查詢計畫的時候,首先確定完成這個查詢計畫需要讀取什麼資料,然後通過ole db介面向儲存引擎中的訪問方法傳送訪問資料請求。

(6)為了完成查詢執行器的請求,訪問方法需要從資料庫中讀取乙個資料頁面,並要求緩衝區管理器提供這個資料頁面。

(7)緩衝區管理器在資料快取中檢查這個資料頁面是否存在,如果這個頁面在資料快取中不存在,緩衝區管理器首先從磁碟上獲取這個資料頁面,然後將它存入快取,並傳回給訪問方法。

(8)最後,訪問方法將結果集傳遞給關係引擎,由關係引擎將結果集傳送給客戶端。

select生命週期

select宣告週期 生命週期 三個方法 init 初始化階段 servlet容器載入servlet,載入完成後,servlet容器會建立乙個servlet例項並呼叫init 方法,init 方法只會呼叫一次 service 處理客戶端請求階段 每收到乙個客戶端請求,伺服器就會產生乙個新的執行緒去處...

React 生命週期 生命週期方法

生命週期 掛載 更新 解除安裝 元件被建立 執行初始化 並被掛載到dom中,完成元件的第一次渲染 constructor props getderivedstatefromprops props,state render componentdidmount 元件被建立時會首先呼叫元件的構造方法,接受...

actived生命週期 Vuejs 生命週期

每個 vue 例項在被建立時都要經過一系列的初始化過程。如需要設定資料監聽 編譯模板 將例項掛載到 dom 並在資料變化時更新 dom 等。同時在這個過程中也會執行一些叫做生命週期鉤子的函式,這給了使用者在不同階段新增自己的 的機會。乙個 vue 例項 我們建立乙個 vue 例項,並在每個階段驗證 ...