sql语句执行顺序

sql语句执行顺序

ID:23166484

大小:61.50 KB

页数:8页

时间:2018-11-05

sql语句执行顺序_第1页
sql语句执行顺序_第2页
sql语句执行顺序_第3页
sql语句执行顺序_第4页
sql语句执行顺序_第5页
资源描述:

《sql语句执行顺序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、sql语句执行顺序sql执行顺序和原理一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换,将复杂的SQL表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同的“执行计划”6)选择连接方式,ORACLE有三种连接方式,对多表连接ORACLE可选择适当的连接方式。7)选择连接顺序,对多表连

2、接ORACLE选择哪一对表先连接,选择这两表中哪个表做为源数据表。8)选择数据的搜索路径,根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。9)运行“执行计划”二、oracle共享原理:ORACLE将执行过的SQL语句存放在内存的共享池(sharedbufferpool)中,可以被所有的数据库用户共享当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径.这个功能大大地提高了SQL的

3、执行性能并节省了内存的使用三、oracle语句提高查询效率的方法:1:nin(select*from......子句组装来自不同数据源的数据;2、ax(总成绩)asmax总成绩篇二:SQL语句执行顺序一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换,将复杂的SQL表达式转换为较简单的等效连接表达式。5)选择

4、优化器,不同的优化器一般产生不同的“执行计划”6)选择连接方式,有三种连接方式,对多表连接ORACLE可选择适当的连接方式。7)选择连接顺序,对多表连接ORACLE选择哪一对表先连接,选择这两表中哪个表做为源数据表。8)选择数据的搜索路径,根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。9)运行“执行计划”二、oracle共享原理:ORACLE将执行过的SQL语句存放在内存的共享池(sharedbufferpool)中,可以被所有的数据库用户共享当你执行一个SQL语句

5、(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径.这个功能大大地提高了SQL的执行性能并节省了内存的使用三、oracle语句提高查询效率的方法:1:nin(select*from......子句组装来自不同数据源的数据;2、子句组装来自不同数据源的数据;2、子句组装来自不同数据源的数据;2、子句组装来自不同数据源的数据;2、esetcolumnName=variable,variable=variable+1先执行variabl

6、e=variable+1,再执行columnName=variable2.如果有多个A类(或B类)表达式,按从左到右顺序执行A类(或B类)表达式。例:updatetablenamesetcolumnName=variable,variable=variable+1,variable=2*variable先执行variable=variable+1,再执行variable=2*variable,最后执行columnName=variable3.列名所代表的值永远是原值。例:updatetablenam

7、esetcolumnName=colunName+1,columnNameBagroupby在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。在带有groupby子句的查询语句中,在select列表中指定的列要么是groupby子句中指定的列,要么包含聚组函数selectma

8、x(sal),jobempgroupbyjob;(注意max(sal),job的job并非一定要出现,但有意义)查询语句的select和groupby,having子句是聚组函数唯一出现的地方,在(sal)fromemp(sal)>8500orderbydeptno;当在gropuby子句中使用having子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有empgroupbydeptno,job;OracleSQL性能优化技巧1.选用适合

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

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

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