SQL Server查询处理器机制与结构(上)

2016-01-29 15:54 3 1 收藏

SQL Server查询处理器机制与结构(上),SQL Server查询处理器机制与结构(上)

【 tulaoshi.com - SQLServer 】

摘要:本文介绍了在客户机上处理 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 存储引擎的内部机制和处理方法,不过对查询处理器的讨论不够深入。本文正填补了这个空白。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

我们期望本文有助于读者编写出更好的应用程序。通过本文,读者会在提高程序性能方面得到新的启发,产生新的理解。

SQL Server 是一种客户机/服务器系统

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

多年来,SQL Server 一直被认为是一种客户机/服务器系统。事实上,Sybase DataServer(以此为基础开发了原始的 SQL Server)正是第一个作为客户机/服务器系统开发的商用关系数据库系统。那这又说明了什么呢?这不只意味着 SQL Server 是一个双层系统。从传统上看,双层系统意味着客户机应用程序运行在一台机器上,向另一台计算机上的服务器发送请求。而对于 SQL Server,客户机/服务器意味着 SQL Server 的组成部分,即客户机 API 部分,驻留在处理结构中的远端,与服务器组件本身是分开的。

在典型的双层模型中,客户机程序部分驻留在台式机上,具有大量客户机应用程序逻辑和业务逻辑,并且会直接向数据库系统发出请求。然后,客户机得到服务器响应这些请求所返回的数据。

三层系统也采用了同样的模型。多年以来,SQL Server 一直用在事务处理监视系统中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,这些系统早在二、三十年前就采用了典型的三层模型。三层模型在今天基于 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 的本机接口。

来源:https://www.tulaoshi.com/n/20160129/1496765.html

延伸阅读
标签: 电脑入门
主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的工作频率(主频)包括两部分:外频与倍频,两者的乘积就是主频。倍频的全称为倍频系数。CPU的主频与外频之间存在着一个比值关系,这个比值就是倍频系数,简称倍频。倍频可以从1.5一直到23以至更高,以0.5为一个间隔单位。外频与倍频相乘就是主频,所以其中任何一项提高都可以使CPU的...
标签: 电脑入门
检测电脑的CPU、BIOS、主板(包括芯片组、主板插槽、接口等)、系统制造商、芯片、总线、设备等。 Windows优化大师可以检测的CPU类型如下: Intel系列:Core系列、Pentium Extreme Edition、Pentium 4 Cedar Mill、Celeron D、Pentium M Yonah、Pentium D SmithField、Pentium 4 Prescott2M、Pentium M Dothan、Pentium M Banias、Celeron M、X...
引言 bootloader是用来完成系统启动和系统软件加载工作的程序。它是底层硬件和上层应用软件之间的一个中间件软件,完成处理器和周边电路正常运行所要的初始化工作;可以屏蔽底层硬件的差异,使上层应用软件的编写和移植更加方便;不仅具有类似PC机上常用的BIOS(Basic Input Output System,基本输入、输出系统监控程序)功能,而且还可具有...
标签: 电脑入门
酷睿 英特尔处理器的名称,开发代号Yonah,分单核与双核两种。酷睿处理器采用667MHz的前端总线速率,60nm制程工艺,2M L2缓存,双核酷睿处理器通过SmartCache技术两个核心共享2M L2资源 什么是酷睿 酷睿是一款领先节能的新型微架构,设计的出发点是提供卓然出众的性能和能效,提高每瓦特性能,也就是所谓的能效比。早期的酷睿是基于笔记本处理器的...
标签: 电脑入门
双核与双芯(Dual Core Vs. Dual CPU): AMD和Intel的双核技术在物理结构上也有很大不同之处。AMD将两个内核做在一个Die(晶元)上,通过直连架构连接起来,集成度更高。Intel则是将放在不同Die(晶元)上的两个内核封装在一起,因此有人将Intel的方案称为双芯,认为AMD的方案才是真正的双核。从用户端的角度来看,AMD的方案能够使双核CPU的管脚...

经验教程

313

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部