




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近总是在优化公司的旧系统,有很多地方需要进行sql语句优化,把sql语句的执行顺序来好好的分析一下,SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑步骤的简单描述。(8)SELECT(9)DISTINCT(11)(1)FROMleft_table(3)JOIN(2)ON(4)WHERE(5)GROUPBY(6)WITH(7)HAVING(10)ORDERBY 逻辑查询处理阶段简介1. FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1 2. ON:对VT1应用ON筛选器。只有那些使为真的行才被插入VT2。 3. OUTER(JOIN):如 果指定了OUTER JOIN(相对于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。 4. WHERE:对VT3应用WHERE筛选器。只有使为true的行才被插入VT4. 5. GROUP BY:按GROUP BY子句中的列列表对VT4中的行分组,生成VT5. 6. CUBE|ROLLUP:把超组(Suppergroups)插入VT5,生成VT6. 7. HAVING:对VT6应用HAVING筛选器。只有使为true的组才会被插入VT7. 8. SELECT:处理SELECT列表,产生VT8. 9. DISTINCT:将重复的行从VT8中移除,产生VT9. 10. ORDER BY:将VT9中的行按ORDER BY 子句中的列列表排序,生成游标(VC10). 11. TOP:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者。注:步骤10,按ORDER BY子句中的列列表排序上步返回的行,返回游标VC10.这一步是第一步也是唯一一步可以使用SELECT列表中的列别名的步骤。/en-us/library/ms189499(v=SQL.100).aspxSELECT (Transact-SQL)SQL Server 2008Retrieves rows from the database and enables the selection of one or many rows or columns from one or many tables. The full syntax of the SELECT statement is complex, but the main clauses can be summarized as: WITH SELECTselect_list INTOnew_table FROMtable_source WHEREsearch_condition GROUP BYgroup_by_expression HAVINGsearch_condition ORDER BYorder_expression ASC | DESC The UNION, EXCEPT and INTERSECT operators can be used between queries to combine or compare their results into one result set.Transact-SQL Syntax ConventionsSyntax := WITH ,.n ORDER BY order_by_expression | column_position ASC | DESC ,.n COMPUTE AVG | COUNT | MAX | MIN | SUM (expression ) ,.n BY expression ,.n OPTION ( ,.n ) := | ( ) UNION ALL | EXCEPT | INTERSECT | ( ) .n := SELECT ALL | DISTINCT TOP (expression) PERCENT WITH TIES INTO new_table FROM ,.n WHERE HAVING RemarksBecause of the complexity of the SELECT statement, detailed syntax elements and arguments are shown by clause:WITH common_table_expressionUNIONSELECT ClauseEXCEPT and INTERSECTINTO ClauseORDER BYFROMCOMPUTEWHEREFOR ClauseGROUP BYOPTION ClauseHAVINGThe order of the clauses in the SELECT statement is significant. Any one of the optional clauses can be omitted, but when the optional clauses are used, they must appear in the appropriate order.SELECT statements are permitted in user-defined functions only if the select lists of these statements contain expressions that assign values to variables that are local to the functions.A four-part name constructed with the OPENDATASOURCE function as the server-name part can be used as a table source wherever a table name can appear in aSELECT statement.Some syntax restrictions apply to SELECT statements that involve remote tables. For more information, seeGuidelines for Using Distributed Queries.Processing Order of the SELECT statementThe following steps show the processing order for a SELECT statement.1. FROM2. ON3. JOIN4. WHERE5. GROUP BY6. WITH CUBE or WITH ROLLUP7. HAVING8. SELECT9. DISTINCT10. ORDER BY11. TOPPermissionsRequires membership in thesysadminfixed server role, thedb_owneranddb_datareaderfixed database roles, and ownership of the table. Members of thesysadmin,db_owner, anddb_securityadminroles, and the table owner can transfer permissions to other users.See AlsoReferenceSELECT Examples (Transact-SQL)窗体顶端Did you find this helpful?YesNo窗体底端Community ContentAddFAQAdditional information about the Processing Order of a SELECT statementThe steps shown in the section Processing Order of a SELECT statement represent the logical processing order, or binding order, for a SELECT statement. This order determines when the objects defined in one step are made available to the clauses in subsequent steps. For example, if the query processor can bind to (access) the tables or views defined in the FROM clause, these objects and their columns are made available to all subsequent steps. Conversely, because the SELECT clause is step 8, any column aliases or derived columns defined in th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风电项目安全管理体系建设方案
- 银行外部监管问题整改实施方案
- 高职计算机网络基础知识总结与练习
- 在职员工股票激励协议范本解析
- 快递行业成本与盈利困境解析2025年市场策略研究报告
- 工程项目甲方管理操作规范手册
- 孕期优生优育知识宣传教材
- 中学数学奥赛辅导课程教学设计
- 含氮杂环配体在超钚锕系元素及三价镧锕离子分离中的理论探究与应用展望
- 含有CpG基序的寡聚脱氧核苷酸2395对鼠巨细胞病毒肝炎新生小鼠的治疗作用
- 米粉及杂粮类制品课件
- 楔形平板产生的等厚干涉
- 骨髓腔穿刺在急诊急救中的应用课件
- 机械动力学PPT完整全套教学课件
- 年产2.03万吨高端精细化学品及5G新材料项目环评报告书
- 群众文化副高答辩问题及答案
- GB/T 41972-2022铸铁件铸造缺陷分类及命名
- 主编-孙晓岭组织行为学-课件
- 中医刮痧法诊疗操作评分标准
- 《师范生教师职业能力证书》样式及说明
- 学校体育学(第三版)ppt全套教学课件
评论
0/150
提交评论