欢迎来到天天文库
浏览记录
ID:23166484
大小:61.50 KB
页数:8页
时间:2018-11-05
《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.选用适合
此文档下载收益归作者所有