Oracle 中 SQL的执行流程
当用户提交待执行的目标SQL给Oracle后,Oracle首先会执行对目标SQL的校验过程。在这个校验过程中,Oracle会执行对目标SQL的语法、语义和权限检查,然后对SQL进行等价改写。
接下来,就正式进入了查询优化(Query Optimization)这个步骤,在这个步骤里,根据不同的优化器类型,Oracle会根据不同的判断原则来从执行完查询转换这一步后得到的目标SQL的诸多可能的执行路径(Access Path)中选择一条执行路径来作为其执行计划,即查询优化的偷入就是执行完查询转换这一步后得到的等价改写SQL,其输出就是该SQL的执行计划。
在得到了目标SQL的执行计划后,接下来Oracle就会根据得到的执行计划去实际执行该SQL并将执行结果返问给用户。
以上就是Oracle数据库里SQL语句的大致执行过程,我们有时又将上述执行步骤中的“校验”、“查询转换”、“查询优化”这三个步骤统称为执行目标SQL过程中的解析(parse).确定执行计划是比较昂贵的步骤!
执行计划怎么看?
单表访问路径
分析工具
1.EM
2.AWR报告
ASH 报告工具
获取SQL执行计划:
方式一:awrsqlrpt
方式二:sqlplus
最常用的方式三:explain plan
方式四:获取缓存中的sql执行计划
索引创建:
适合建索引的列
不适合建索引的列
不走索引的情况