Microsoft SQL Server 查詢處理器的內部機制與結構

來源:互聯網
上載者:User

摘要:本文介紹了在客戶機上處理 Microsoft SQL Server 查詢的方式,各種客戶機與 SQL Server 的互動方式,以及 SQL Server 在處理客戶機程式的請求時需要完成的工作。

簡介

Microsoft(R) SQL Server(TM) 內部機制和結構是一個非常大的主題,因此本文僅限於程式開發人員感興趣的問題,集中研究其他源中沒有徹底討論的問題。在討論 SQL Server 的結構時,我們主要觀察客戶機的處理過程,研究不同的客戶機程式與 SQL Server 的互動方式,以及 SQL Server 如何處理客戶機的請求。還有一些討論 SQL Server 其他方面的資訊源,特別是 Microsoft Press 出版的 Inside SQL Server 7.0,作者是 Ron Soukup 和 Kalen Delaney,這本書非常詳細地討論了 SQL Server 儲存引擎的內部機制和處理方法,不過對查詢處理器的討論不夠深入。本文正填補了這個空白。

我們期望本文有助於讀者編寫出更好的應用程式。通過本文,讀者會在提高程式效能方面得到新的啟發,產生新的理解。

SQL Server 是一種客戶機/伺服器系統

多年來,SQL Server 一直被認為是一種客戶機/伺服器系統。事實上,Sybase DataServer(以此為基礎開發了原始的 SQL Server)正是第一個作為客戶機/伺服器系統開發的商用關聯式資料庫系統。那這又說明了什麼呢?這不只意味著 SQL Server 是一個雙層系統。從傳統上看,雙層系統意味著客戶機應用程式運行在一台機器上,向另一台電腦上的伺服器發送請求。而對於 SQL Server,客戶機/伺服器意味著 SQL Server 的組成部分,即客戶機 API 部分,駐留在處理結構中的遠端,與伺服器組件本身是分開的。

在典型的雙層模型中,客戶機程式部分駐留在台式機上,具有大量客戶機應用程式邏輯和商務邏輯,並且會直接向資料庫系統發出請求。然後,客戶機得到伺服器響應這些請求所返回的資料。

三層系統也採用了同樣的模型。多年以來,SQL Server 一直用在交易處理監視系統中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,這些系統早在二、三十年前就採用了典型的三層模型。三層模型在今Apsara Infrastructure Management Framework於 Web 的應用系統中佔據了支配地位,這類系統以 Microsoft 的 MTS 以及新的 COM+ 1.0 為代表。從 SQL Server 的角度看,三層解決方案中的客戶機程式是放在中介層的。中介層直接與資料庫互動。實際的案頭,或瘦客戶機(Thin Client),使用其他機制並通常直接與中介層互動,而不是直接與資料庫系統互動。圖 1 描述了這種結構。

圖 1. 三層系統模型

客戶機結構

從結構的角度看,SQL Server 關係伺服器組件本身並不真正關心客戶機程式啟動並執行位置。事實上,就 SQL Server 而言,即使在運行 SQL Server 的同一台機器上運行應用程式,仍然還是客戶機/伺服器模型。伺服器運行一個單獨的多線程進程,為來自客戶機的請求提供服務,不管客戶機的位置在哪裡。客戶機程式碼本身是單獨的運行在客戶機應用程式內部的 DLL,與 SQL Server 的實際介面是在客戶機和伺服器之間對話的“表格式資料流”(Tabular Data Stream, TDS) 協議。

一個常見的問題是“什麼是 SQL Server 的本機介面呢?”很長時間以來,很多開發人員一直都不願意使用 ODBC 這樣的介面,因為他們認為由 Sybase 開發的客戶機 API,也就是 DB-Library,是 SQL Server 的本機介面。實際上,SQL Server 關係伺服器本身並沒有本機 API,它的介面就是在客戶機和伺服器之間的通訊流協議 TDS。TDS 把客戶機發送給伺服器的 SQL 陳述式封裝起來,也把伺服器返回給客戶機的處理結果封裝起來。任何直接處理 TDS 的 API 都是 SQL Server 的本機介面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.