Oracle之提高PLSQL的执行性能
目录
1、SQL解析详解
2、演示示例
3、启用Oracle跟踪事件
4、查看改造后SQL性能对比结果
更多技术干货,关注个人博客吧
1、SQL解析详解
SQL解析是数据块处理SQL语句不可缺少的步骤,是在解析器中执行的。将SQL转换成数据库可以执行的低级指令。
SQL解析分为硬解析和软解析。
硬解析一般是数据库第一次执行,在共享池池中没有发现过执行的历史,如果SQL发生语法变动或者修改,都会触发硬解析。会对SQL进行完全解析。包括语法分析、语义分析,生成新的执行计划。
主要的步骤:
语法分析:检查SQL的语法是否正确。
语义分析:检查SQL是否正确。比如table是不是存在、用户是不是授权等。
优化:重新生成新的执行计划。
执行计划缓存:将执行计划缓存。如果下次重新执行该SQL会重复使用。不用再次生成新的执行计划。
软解析:
软解析是历史执行过该SQL,已经在共享池shared pool 存在,不用重新生成新的执行计划。而是使用共享池中的执行计划。
主要的步骤:
查询缓存:在共享池中查找该SQL或者过程块,是不是已经存在共享池中。
使用缓存的执行计