oracle的执行计划(一)

 原作者:不详 好像是出自metalink

 

第一次翻译,如有不当,欢迎大家指出。谢谢。

 

目录

什么是执行计划?

术语解释

oracle如何访问数据?

执行计划的层次

各种访问方法的内部过程

连接类型

执行计划中的“Operations”

远程查询

变量绑定

并行查询

如何获得执行计划

 

 

什么是执行计划?

 

一个执行计划是oracle中执行一个查询的时候oracle的执行路径(即oralce内部对一个sql语句解析分解,确定一个访问数据的方式和顺序)。

 

这个过程被分解成7步:

 

[1]语法检查     检查sql语句的正确性。

[2]语义检查     检查语句中对象的存在性

[3]合并视图     如果查询中含有视图,把视图合并到整体查询中(不单独产生执行计划)

[4]语句转换     把sql语句中复杂的结构转换为一个简单的结构(如子查询合并)

[5]优化             为语句决定一个最佳的执行路径,基于规则的优化(RBO)将根据语句给出的HITS列表决定执行路径,

基于成本的优化(CBO)通过访问对象的成本的大小来决定执行路径

[6]计划生成     生成执行计划

[7]计划执行     执行语句

 

1~6步为分析过程,7是执行过程

 

当执行计划产生以后,会同语句本身一起通过一种哈希算法被存到缓存中,如果没有重新生成执行计划,下次执行同一个语句的时候,会直接从缓存中读取执行计划。

 

 

术语解释

 

待续……

你可能感兴趣的:(oracle,优化,sql,算法)