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

来源:互联网 发布:最强网络神豪 编辑:程序博客网 时间:2024/06/13 21:58

目录

    • 目录
    • 正确认识SQL Server数据库引擎
    • 参考资料

正确认识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

1 0