跟我一起學Microsoft SQL Server 2012 Internals(1.4)

目錄

正確認識SQL Server數據庫引擎

SQL Server數據庫引擎作爲MS SQL Server套件中的核心程序,主要包含如下4個組件:

  1. 協議(protocol layer)
  2. 關係引擎(relational engine,即查詢處理器query processor)
  3. 存儲引擎(storage engine)
  4. SQLOS

下圖截取自《Microsoft SQL Server 2012 Internals》-chapter1
數據庫引擎

我們可以在SQL Server Configuration Manager中查看當前SQL Server使用的網絡協議(需注意:下圖所示是2個SQL Server2008R2實例中MSSQLSERVER使用的網絡協議情況,協議VIA已在2012版本棄用):
網絡協議

從SQL Server2005開始SQL Server使用了新的SQL Server Network Interface(SNI)協議,在標準通訊協議TCP/IP與named pipes中封裝tabular data stream (TDS)進行網絡傳輸,替換了原來2000使用的Net-Libraries和 Microsoft Data Access Components (MDAC)。

其中SQL Server關係引擎主要包含了:查詢優化器(Query Optimizer)與查詢執行器(query execution)。這兩個組件是T-SQL語句調優的重點
下圖截取自《Microsoft SQL Server 2012 Internals》-chapter11,顯示了查詢優化器的主要工作過程:
這裏寫圖片描述

而SQL Server存儲引擎涉及了數據訪問與管理相關的所有組件。在SQL Server2008/2008R2/2012中,存儲引擎主要包含了3個部分: 訪問方法(access methods), 鎖與事務(locking and transaction services),實用工具命令(utility commands)

通常情況下,我們也認爲SQLOS屬於windows操作系統的一部分(在第二章將詳細描述SQLOS),因爲SQLOS通過windows API管理了內存、工作線程等操作系統資源。

參考資料

  1. 《Microsoft SQL Server 2012 Internals》 - chapter 1

  2. Network Protocols and TDS Endpoints
    https://technet.microsoft.com/en-us/library/ms191220%28v=sql.105%29.aspx

update by HyperWang at 2016/03/14

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章