执行计划中cost计算方法
来源:互联网 发布:故宫淘宝 知乎 编辑:程序博客网 时间:2024/05/16 06:36
概念:
blevel:二元高度=索引高度-1
clustering_factor:集群因子,通过索引扫面得出的要查询table的blocks数量,clustering_factor接近table的blocks说明table是按照索引顺序存储的,clustering_factor接近table行数说明table相比于按照索引顺序,用一种更为乱序的存储的。
索引扫描的计算公式:
cost =blevel +
ceil(leaf_blocks *effective index selectivity) +ceil(clustering_factor * effective table selectivity)
一下测试是在rule based optimizer used条件下
SQL> select leaf_blocks,blevel,clustering_factor from dba_indexes where index_name='IDX_T';LEAF_BLOCKS BLEVEL CLUSTERING_FACTOR----------- ---------- ----------------- 112 1 776
SELECT b.num_rows, a.num_distinct, a.num_nulls, utl_raw.cast_to_number(high_value) AS high_value, utl_raw.cast_to_number(low_value) AS low_value
, b.num_rows - a.num_nulls AS "NUM_ROWS-NUM_NULLS", utl_raw.cast_to_number(high_value) - utl_raw.cast_to_number(low_value) AS "HIGH_VALUE-LOW_VALUE"
FROM dba_tab_col_statistics a, dba_tables b
WHERE a.owner = b.owner
AND a.table_name = b.table_name
AND a.owner = 'SCOTT'
AND a.table_name = upper('TEST')
AND a.column_name = 'OBJECT_ID'
NUM_ROWS NUM_DISTINCT NUM_NULLSHIGH_VALUELOW_VALUENUM_ROWS-NUM_NULLSHIGH_VALUE-LOW_VALUE
50736 5073515382025073553818
effective index selectivity=(limit-low_value)/(high_value-low_value)
SQL> select (1000-2)/(53820-2) selectivity from dual;SELECTIVITY-----------0.018543982
SQL> SELECT OWNER FROM TEST WHERE OBJECT_ID<1000;已选择953行。执行计划----------------------------------------------------------Plan hash value: 1810195980---------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost |---------------------------------------------------------------------| 0 | SELECT STATEMENT | | 941 | 10351 | 19 || 1 | TABLE ACCESS BY INDEX ROWID| TEST | 941 | 10351 | 19 ||* 2 | INDEX RANGE SCAN | IDX_T | 941 | | 4 |---------------------------------------------------------------------Predicate Information (identified by operation id):--------------------------------------------------- 2 - access("OBJECT_ID"<1000)
1.回表io=ceil(clustering_factor * effective table selectivity)=19-4=15
2.blevel +ceil(leaf_blocks *effective index selectivity)
0 0
- 执行计划中cost计算方法
- oracle执行计划中cost cpu
- ORACLE 执行计划中cost cardinality bytes cpu_cost io_cost解释
- Cost 计算方法
- Oracle执行计划(6)-cost成本-连接成本
- oracle执行计划(4)--COST成本全表扫描成本
- oracle执行计划(4.5)--cost成本之快速索引扫描
- oracle执行计划中的cost,time与实际执行时间
- oracle 执行计划里的cost(%CPU)与consistent gets
- Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引
- 执行计划之误区,为什么COST很小,SQL却跑得很慢?
- 执行计划之误区,为什么COST很小,SQL却跑得很慢?
- 关于添加rownum条件count stopkey执行计划对于cost成本估算的影响
- ORACLE中查看执行计划
- ORACLE中查看执行计划
- ORACLE中查看执行计划
- 执行计划中参数解析
- ORACLE中查看执行计划
- HDU1532 Drainage Ditches (网络流基础水题)
- Jobdu 题目1172:哈夫曼树
- 刷机中遇到的问题解决方法及一些感悟
- MinGW的使用
- excel -特殊字符使用
- 执行计划中cost计算方法
- 客家话和健康计划可见韩国
- ubuntu下flex4开发环境搭建的总结
- 使用 python Matplotlib
- JAVA Excel API学习案例
- 递归基本法则
- jquery JSON的解析方式
- APPWEB2.4.4+PHP5.2.17+MATRIXSSL1.8.3移植到TI OMAP132平台
- 复杂引用