基本select语句的生命周期
(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)最后,訪問方法將結果集傳遞給關系引擎,由關系引擎將結果集發送給客戶端。
轉載于:https://www.cnblogs.com/wjszxli/p/3901463.html
總結
以上是生活随笔為你收集整理的基本select语句的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 4930 Fighting th
- 下一篇: 小康陪你学JAVA--------三大循