Microsoft SQL Server 查询处理器的内部机制与结构
2006-08-05 09:14:50 来源:WEB开发网图的中间是称为 SQL Manager 的部分。SQL Manager 控制着 SQL Server 内部的所有数据的流动。SQL Manager 控制着 RPC 消息,在 SQL Server 7.0 中,绝大多数来自客户机的功能调用都是通过 RPC 消息进行的。上一节中介绍的虚拟系统存储过程逻辑上也是 SQL Manager 的一部分。通常,作为 TDS SQL 语言消息的 SQL 语句直接在编译一端执行,与早期版本相比,SQL Server 7.0 较少使用这种方法,但还算是比较常见的。执行结果由称为 ODS 的执行引擎中的组件格式化为 TDS 执行结果消息。
绝大多数输出都来自图中的执行端,而且输出结果也真正出自表达式服务。“表达式服务”库是进行数据转换、谓词评估(过滤)以及算法计算的组件。它还利用了 ODS 层,把输出结果格式化为 TDS 消息。
还有几个组件,我们只是在这里简单地提一下,这些组件在关系引擎内部提供附加服务。这些组件中的一个是目录服务组件,用于数据定义语句,例如 CREATE TABLE、CREATE VIEW 等。目录服务组件主要放在关系引擎中,但是实际上大约有三分之一的目录服务组件是在存储引擎中运行的,所以可以看作是共享组件。
关系引擎中的另一种组件是“用户模式调度程序 (UMS)”,这是 SQL Server 自己内部的纤程和线程规划器。把任务分配给纤程或线程是一种非常复杂的内部机制,取决于对服务器如何配置,以及在 SMP 系统中允许 SQL Server 进行处理器之间的适当的负载平衡。UMS 还可以避免 SQL Server 由于同时运行太多的线程而导致性能过低。最后,还有大家熟悉的系统过程,逻辑上它们也属于关系引擎的一部分。这些组件肯定不是服务器代码,因为可以很容易地使用 sp_helptext 检查定义这些过程的 Transact-SQL 代码。但是,系统过程被作为服务器的一部分来对待,因为系统过程的用途是显露重要的服务器能力,像系统表一样,以供应用程序在更高的层次上和更适当的层次上使用。如果应用程序开发人员将较高层次的系统过程 — 更容易使用 — 作为一种接口,即使随着版本的更新,原始层次上的系统表发生变化时,应用程序仍然可以继续使用。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
赞助商链接