【調優】CBO基礎(六)
簡單btree訪問
這部分看看單表的btree訪問的cost
cost =
blevel +
ceiling(leaf_blocks * effective index selectivity )+
ceiling(clustering_factor * effective table selectivity)
做個測試驗證一下:
create table t_test_tb12 as select * from dba_objects a where a.OBJECT_ID is not null ;
create index ind_test_tb12_1 on t_test_tb12(object_id);
insert into t_test_tb12 select * from t_test_tb12 a ;
begin
dbms_stats.gather_table_stats(user,'t_test_tb12');
end;
/
這裡的
effective index selectivity
effective table selectivity
可以由下面公式計算出:
1/DISTINCT_KEYS
AVG_DATA_BLOCKS_PER_KEY /NUM_ROWS
SELECT A.BLEVEL, --2
A.LEAF_BLOCKS,--844
A.DISTINCT_KEYS, --91550
A.AVG_LEAF_BLOCKS_PER_KEY,--1
A.AVG_DATA_BLOCKS_PER_KEY,--4
A.CLUSTERING_FACTOR,--366200
A.NUM_ROWS--366200
FROM DBA_INDEXES A
WHERE A.INDEX_NAME = UPPER('ind_test_tb12_1');
select * from t_test_tb12 a where a.object_id = 15;
測試多次插入值,收集統計資訊後的查詢計劃,檢視cost值可以看到,基本可以符合前面的公式:
select 1 + ceil(190*1/91548) +ceil(1896*1/91548) from dual ;
select 2 + ceil(844*4/91550) +ceil(366200*4/366200) from dual ;
select 2 + ceil(1714*8/91550) +ceil(732400*8/732400) from dual ;
select 2 + ceil(3349*16/91550) +ceil(1464800*16/1464800) from dual ;
這個公式也不難理解,基本的原理有幾點:
1, btree的基本結構,root/branch block ,leaf block的特點
2, 通過btree訪問行的原理
上面的例子是=號,><<>的情況類似,也可以推算出來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-714028/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【調優】CBO基礎
- 【調優】CBO基礎(八)
- 【調優】CBO基礎(五)
- 【調優】CBO基礎(四)
- 【調優】CBO基礎(三)
- 【調優】CBO基礎(二)
- 【效能調優】效能測試、分析與調優基礎
- 【sql調優】繫結變數與CBOSQL變數
- Java 9 中的 GC 調優基礎JavaGC
- Java 9中的GC調優基礎JavaGC
- Redis 基礎、高階特性與效能調優Redis
- Redis基礎、高階特性與效能調優Redis
- 逆向基礎(六)
- Presto記憶體調優及原理(基礎篇)REST記憶體
- 面試之 Redis 基礎、高階特性與效能調優面試Redis
- WiFi基礎(六):天線基礎知識WiFi
- 【CBO】基於成本優化器的基本原則(二)優化
- 【CBO】基於成本優化器的基本原則(一)優化
- JVM效能調優與實戰基礎理論篇-下JVM
- 【cbo計算公式】Join 選擇率(六)公式
- java基礎(六):RabbitMQ 入門JavaMQ
- Python基礎(六) 函式Python函式
- JavaSE基礎知識分享(六)Java
- Oracle優化器(RBO與CBO)Oracle優化
- Vue學習計劃基礎筆記(六) – 元件基礎Vue筆記元件
- Spark SQL 效能優化再進一步 CBO 基於代價的優化SparkSQL優化
- SQL Server調優系列基礎篇(子查詢運算總結)SQLServer
- SQL優化基礎SQL優化
- 袋鼠雲數棧基於CBO在Spark SQL優化上的探索SparkSQL優化
- CBO Cost Formulas基於成本優化器的成本計算公式大全ORM優化公式
- 基於CBO優化器謂詞選擇率的計算方法優化
- jvm系列(六):jvm調優-從eclipse開始JVMEclipse
- 六西格瑪的基礎知識
- Django基礎六之cookie和sessionDjangoCookieSession
- OC基礎(六)——記憶體管理記憶體
- 第六週基礎部分作業
- SQL Server調優系列基礎篇(並行運算總結篇二)SQLServer並行
- 12條語句學會oracle cbo計算(六)Oracle