选择显示字体大小

浅谈sqlserver2000t-sql的运行

  t-sql(trantsact-sql)是微软公司在sybase的基础上发展起来的一种结构化查询语言,是应用程序和存储过程与sql server通讯和访问的工具.包涵了ansi89和ansi92标准.所以t-sql不是一种标准的编程语言,它必须通过sql server的数据引擎来分析和运行,sql server是如何编译和运行t-sql语句呢? 

  sql server在处理任何t-sql语句时都经过下面三个步骤: 

  1. 解析t-sql语句 

  2. 编译t-sql语句 

  3. 执行t-sql语句  

  当一个t-sql的批处理提交到sql server服务器,服务器回将这个t-sql批处理作为一个整体进行分析,在优化,编译,最后在分步执行.

  一. 解析  

  所谓”解析”是指sql server命令解析模块首先检查t-sql批处理语法的过程,如果没有找到错误,命令解析器将源代码细分为多个逻辑单元,比如:关键字,标识符以及运算符.然后命令解析器会构建一个内部结构,最后通过这个内部结构生成ddl操作或ddm操作所需要的详细的步骤.如果该t-sql批处理包涵一个查询,那么这个内部结构被成为查询树(query tree),如果该t-sql批处理是一个过程,那么这个内部查询被成为顺序树(sequence tree).

  

 

  图一:sql server的关系引擎部分  

  大家可以看出在图一的左边,主要是t-sql的解析,编译和查询优化(query optimizer).这是sql server运行t-sql非常关键的部分.在图的右边是执行组件,当t-sql语句编译过后就会直接传给执行结构进行运行.在中间的部分是sql管理器,控制整个t-sql批处理的解析,编译和执行. sql message 是从客户端接受的(tds)数据.express services libary是进行数据转换,过虑数据和进行计算和统计,同时也会格式化输出的数据.   

  二.编译  

   这一步主要是将顺序树(sequence tree)生成为一个执行规划, 查询优化器(query optimizer)主要是对t-sql语句所要检索的资源进行评估,生成i/o的时间,过虑时间和其他逻辑处理的时间.然后查询优化器(query optimizer)是试图利用一个最小资源的方案.  

  这个方案中还包括执行是需要的任务列表(比如:安全检查,约束检查,触发器检查等等).这个就被成为执行规划  

  三.执行  

   执行组件根据执行规划在高速缓存中运行并滞留,执行规划的不同步骤将被发送到关系引擎的不同组件进行处理:dml管理器,ddl管理器,存储过程管理器,事务处理管理器和实用工具管理器.处理结果将以结果集的方式被收集合并返回调用者.  

  执行规划将在高速缓存中被保留一段时间,如果同一用户或其他用户发出类似请求的t-sql批处理,关系数据引擎将会优先在高速缓存中寻找匹配的执行规划.如果该执行规划存在就采用运行,如果不存在,sql server 就会解析并编译这个t-sql批处理.  

  如果sql server需要的内存不够,它会从内存中删除一些执行规划.sql server有一个很好的”老化”算法,它可以统计某个执行规划的使用时间和次数.如果内存足够的大,也可以无限的增加执行规划到内存中.  

  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons