optimizer的组成
时间:2010-10-15 来源:oracle狂热分子
optimizer 主要由三部分组成,分别是Query transformer,Estimator,Plan generator; 1,Query transformer用途是把传过来的SQL语句(已经是PARSED过的查询)进分析,评估表达式和引用的对像,对于VIEW,子查询,谓词,通过物化视图进行查询重写做一些转换,主要的目标还是决定是否能产生一个更好的QUERY PLAN, 2,Estimator基于DICTIONARY的STATISTICS产生三种度量,1,SELECTIVITY;2,CARDINALITY;3,COST.最终的目标是尽可能准确的评估一个给定计划的成本.predicate(谓词)实际就是一个用来在行集中过来滤一定数量行的FILTER.CARDINALITY表示一个一个ROW SET中有多少行.COST表示工作或使用的资源单元..OPTIMIZER使用IO.MEM和CPU作为工作单元.
ACCESS PATH表示从一个基表中得到数据所需要的工作单元数量.INDEX SCNA的成本取决于B TREE的层,叶子结点的数量,使用INDEX KEY来得到数据的娄理. 3,Plan generator的功能是试图产生多个不同的计划,然后找到最少COST那个计划.
相关阅读 更多 +