Oracle CBO深入剖析(oraclecbo书籍)
Oracle是当前十分热门的数据库,使用情况也呈上升趋势,学习Oracle对开发人员至关重要。Oracle有自己的查询分析器,即Cost Based Optimizer(CBO),为该查询分析器所做的深入剖析将有助于更好地理解Oracle查询分析器。
首先,为了更好地了解Oracle CBO,我们需要了解它的工作原理。Oracle CBO是Oracle的查询优化器,其基本思想是根据SQL语句,数据字典内容和数据库内部度量参数等查询和使用信息,来识别数据库最有效的查询和执行计划。比如,当我们准备要查询一个表时,它会考虑到可以用索引读取的数据行数,和全表扫描的行数,再结合当前情况来算出较快的执行方案。
其次,Oracle CBO访问改进表示Oracle CBO为每个查询提供了一组可选路由,即所谓的路由,这些路由称为相关联的路径(关联路径),表示从一个表到另一个表的可访问性,在这种情况下,它计算出了最优的关联路径以及索引路径来执行查询或操作。
最后,我们来看一下Oracle CBO的代码实现吧。一个完整的Oracle CBO查询优化的代码实现,高度依赖于底层的Oracle内核,非常复杂,但我们可以从流程上抽象出一部分:
//准备工作,根据数据库内部统计信息,建立一个数据模型
Create_Model();
//从SQL中获取表之间关系
Read_Relations();
//根据分析获取数据库索引信息
Get_Index_Matters();
//根据表间关系,计算关联路径
Calc_Join_Paths();
//计算每一条路径的开销,获取最优路径
Calc_Path_Costs();
//返回最优执行路径
Return_Optimal_Path();
以上是Oracle CBO查询优化器的深入分析,在学习Oracle的过程中,了解Oracle CBO的工作原理及其代码实现,可以有助于我们更好理解Oracle查询优化器,进而缩短查询及执行计划的执行时间,从而获得更好的性能。