t-sql查询处理详解

t-sql查询处理详解

ID:6321852

大小:131.84 KB

页数:11页

时间:2018-01-10

t-sql查询处理详解_第1页
t-sql查询处理详解_第2页
t-sql查询处理详解_第3页
t-sql查询处理详解_第4页
t-sql查询处理详解_第5页
资源描述:

《t-sql查询处理详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、T-SQL查询处理详解(续)首先简单提一下T-SQL。T-SQL的正式名称是Transact-SQL,是ANSI和ISOSQL标准的MicrosoftSQLServer扩展,而PL/SQL是ORACLE对SQL标准的扩展。对于T-SQL编程,用得最广泛的,莫过于查询(Querying)。要想写出高质量、高性能的查询语句,必须深入地了解逻辑查询处理。一、逻辑查询处理的各个阶段(5)SELECTDISTINCTTOP()                      (1)FR

2、OMJOINON (2)WHERE(3)GROUPBY(4)HAVING(6)ORDERBY上边语句是一个普通格式的查询语句,基本包含了所有的查询条件和关键字。你可能会发现前边的序号并不是按顺序来的,被你说对了,这是SQL与其他编程语言不同的最明显特征,就是它的执行顺序并不是按照编写顺序来

3、的。上边的序号,就是查询语句在执行过程中的逻辑处理顺序。下面简单介绍一下各个阶段都干了啥事。(1)FROM阶段   FROM阶段标识出查询的来源表,并处理表运算符。在涉及到联接运算的查询中(各种join),主要有以下几个步骤:  a.求笛卡尔积。不论是什么类型的联接运算,首先都是执行交叉连接(crossjoin),求笛卡儿积,生成虚拟表VT1-J1。     b.ON筛选器。这个阶段对上个步骤生成的VT1-J1进行筛选,根据ON子句中出现的谓词进行筛选,让谓词取值为true的行通过了考验,插入到VT1-J2。     c.添加外部行

4、。如果指定了outerjoin,还需要将VT1-J2中没有找到匹配的行,作为外部行添加到VT1-J2中,生成VT1-J3。   经过以上步骤,FROM阶段就完成了。概括地讲,FROM阶段就是进行预处理的,根据提供的运算符对语句中提到的各个表进行处理(除了join,还有apply,pivot,unpivot)(2)WHERE阶段    WHERE阶段是根据中条件对VT1中的行进行筛选,让条件成立的行才会插入到VT2中。(3)GROUPBY阶段      GROUP阶段按照指定的列名列表,将VT2中的行

5、进行分组,生成VT3。最后每个分组只有一行。(4)HAVING阶段      该阶段根据HAVING子句中出现的谓词对VT3的分组进行筛选,并将符合条件的组插入到VT4中。(5)SELECT阶段  这个阶段是投影的过程,处理SELECT子句提到的元素,产生VT5。这个步骤一般按下列顺序进行       a.计算SELECT列表中的表达式,生成VT5-1。       b.若有DISTINCT,则删除VT5-1中的重复行,生成VT5-2       c.若有TOP,则根据ORDERBY子句定义的逻辑顺序,从VT5-2中选择签名指定数量

6、或者百分比的行,生成VT5-3(6)ORDERBY阶段    根据ORDERBY子句中指定的列明列表,对VT5-3中的行,进行排序,生成游标VC6.当然SQLSERVER在实际的查询过程中,有查询优化器来生成实际的工作计划。以何种顺序来访问表,使用什么方法和索引,应用哪种联接方法,都是由查询优化器来决定的。优化器一般会生成多个工作计划,从中选择开销最小的那个去执行。逻辑查询处理都有非常特定的顺序,但是优化器常常会走捷径。在上一篇T-SQL查询处理详解,文中提到了在如果不考虑查询优化器做的优化的情况下T-SQL查询的逻辑处理过程,讲得

7、很粗糙,这一篇将补充说明这个逻辑处理过程,并对一些容易误解的地方进行说明。不对之处,还请指出。另外再次声明一点,这种逻辑处理顺序,是理论上的处理过程,实际情况还会根据查询优化器选择最优的执行计划。还是从FROM阶段讲开。(1)FROM阶段 这个阶段是查询逻辑处理的第一步。想到这里,想起了LINQ表达式不就是从FROM开始的嘛,看来还是挺有道理的。FROM阶段负责表示表或要查询的表。如果指定了表运算符,还需 要按从左到右的顺序,对运算符进行逐个处理。表运算符有4类,JOIN,APPLY,PIVOT,UNPIVOT。每个表运算符都有自己

8、的处理规则。这里挑最常见的JOIN来说。对于联接(join),一般有以下几个个步骤:a.求笛卡尔积,对两张表进行crossjoin,得出最大的可能结果集。如果左表有n行,右表有m行,则结果集有nxm行。b.利用ON筛选条件来筛选,剔除

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。