SQLServer2005体系结构.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLServer2005体系结构剖析

SQL Server 2005 体系结构 聂伟 《SQL Server 2005技术内幕:存储引擎》作者 1. SQL Server 引擎概述 SQL Server有四大组件:协议(Protocol)、关系引擎(Relational Engine)(又称查询处理器(Query Processor))、存储引擎(Storage Engine)和SQLOS。任何客户端应用程序提交给SQL Server执行的每一个批处理(Batch)都必须与这四个组件进行交互。 1.1 协议组件:负责接收请求并把它们转换成关系引擎能够识别的形式。它还能够获取任意查询、状态信息、错误信息的最终结果,然后把这些结果转换成客户端能够理解的形式,最后再把它们返回到客户端。 1.2 关系引擎组件:负责接受SQL批处理然后决定如何处理它们。对T-SQL查询和编程结构,关系引擎层可以解析、编译和优化请求并检查批处理的执行过程。如果批处理被执行时需要数据,它会发送一个数据请求到存储引擎。 1.3 存储引擎组件:负责管理所有的数据访问,包括基于事务的命令(Transaction-based command)和大批量操作(Bulk Operation)。这些操作包括备份、批量插入和某些数据库一致性检查(Database Consistency Checker,DBCC)命令。 1.4 SQLOS组件:负责处理一些通常被认为是操作系统职责的活动,例如线程管理(调度),同步单元(Synchronization Primitive),死锁检测和包括缓冲池(Buffer Pool)的内存管理。 图-1 SQL Server数据库引擎的主要组件 1.5 如何观测数据库引擎行为: SQL Server 2005引入了一套新的系统对象。它们使开发人员和数据库管理员能够观测到以前所无法观测到的很多SQL Server的内部信息。这些元数据被称为动态管理视图(DMV)和动态管理函数(DMF)。DMV和DMF不是基于真实存在于数据库文件中的表,而是基于SQL Server的一些内部结构,它们都存在于系统架构(sys schema)中,其名字都以dm_开头,后面跟着标明该对象功能类别的代码。下面列出一些常用类别: ■ dm_exec_* 包含与用户代码执行和相关数据库连接直接或间接相关的信息。 ■ dm_os_* 包含如存储、锁和调度等系统底层信息。 ■ dm_tran_* 包含当前事务的细节信息。 ■ dm_io_* 跟踪网络和磁盘上的输入输出活动。 ■ dm_db_* 包含数据库和数据库对象例如索引的细节信息。 2. SQL Server 引擎概述 2.1 协议组件概述 当一个应用程序与SQL Server数据库引擎通讯时,协议层提供的应用程序编程接口利用微软定义的表格格式数据流(Tabular Data Stream ,TDS) 信息包来规范通讯格式。在服务器和客户端上都有可供使用的网络库(Net-Libraries),它可以用来把TDS信息包封装为标准的通信协议(例如TCP/IP和命名管道)信息包。在通信的服务器端,网络库是数据库引擎的一部分,该协议层在图1中有所描述。在通信的客户端,网络库是SQL Native Client协议的一部分。客户端和SQL Server实例的配置决定了实际使用哪一种协议。可用的协议有以下几种: ■ 共享内存 这是最简单的协议,无须配置。 ■ 命名管道 为局域网(LAN)而开发的协议。 ■ TCP/IP 因特网上使用最为广泛的协议。 ■ 虚拟接口适配器 (VIA) 它是一种与VIA硬件一起使用的专门化的协议。 2.2 关系引擎组件概述 关系引擎又称为查询处理器。它包括用来确定某个查询所需要做的操作以及进行这些操作最佳方式的SQL SERVER组件。关系引擎也负责当其向存储引擎请求数据时查询的执行,并处理返回的结果。关系引擎和存储引擎之间的通讯一般以OLE DB行集的形式进行。(行集是OLE DB术语,等同于结果集。)关系引擎包含有以下子组件: 2.2.1 命令解析器 命令解析器处理发送给SQL Server的T-SQL语言事件。它可以检查T-SQL语法的正确性并把其翻译为可以执行的内部格式。这种内部格式称为查询树。 2.2.2 查询优化器 查询优化器从命令解析器获得查询树,并为它的实际执行作准备。不能优化的语句例如控制流和DDL命令将会被编译成一种内部格式。可优化的语句会被标记并随后传送给优化器。查询优化器主要关注DML语句,包括:SELECT, INSERT,UPDATE和DELETE。这些语句可以有多种处理方式,由查询优化器来判断哪种处理方式是最佳的。查询优化器将编译整个批命令,优化可以优化的查询并检查安全性。查询优化和编译的结果就是一个执行计

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档