原作者:不详 好像是出自metalink
第一次翻译,如有不当,欢迎大家指出。谢谢。
目录
什么是执行计划?
术语解释
oracle如何访问数据?
执行计划的层次
各种访问方法的内部过程
连接类型
执行计划中的“Operations”
远程查询
变量绑定
并行查询
如何获得执行计划
什么是执行计划?
一个执行计划是oracle中执行一个查询的时候oracle的执行路径(即oralce内部对一个sql语句解析分解,确定一个访问数据的方式和顺序)。
这个过程被分解成7步:
[1]语法检查 检查sql语句的正确性。
[2]语义检查 检查语句中对象的存在性
[3]合并视图 如果查询中含有视图,把视图合并到整体查询中(不单独产生执行计划)
[4]语句转换 把sql语句中复杂的结构转换为一个简单的结构(如子查询合并)
[5]优化 为语句决定一个最佳的执行路径,基于规则的优化(RBO)将根据语句给出的HITS列表决定执行路径,
基于成本的优化(CBO)通过访问对象的成本的大小来决定执行路径
[6]计划生成 生成执行计划
[7]计划执行 执行语句
1~6步为分析过程,7是执行过程
当执行计划产生以后,会同语句本身一起通过一种哈希算法被存到缓存中,如果没有重新生成执行计划,下次执行同一个语句的时候,会直接从缓存中读取执行计划。
术语解释
待续……