SQLServer 原理簡單解析

來源:互聯網
上載者:User

標籤:style   使用   資料   管理   size   資料庫   sql   設計   

(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)最後,存取方法將結果集傳遞給關聯式引擎,由關聯式引擎將結果集發送給用戶端。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.