日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle通过执行计划cost,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引

發布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle通过执行计划cost,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle 執行計劃(5)—cost成本之索引范圍掃描-B樹索引

SQL>? select * from t1 where a<600 ;

已選擇599行。

已用時間:? 00: 00: 00.03

執行計劃

———————————————————-

Plan hash value: 2474755989

—————————————————————————

| Id? | Operation??????? | Name?? | Rows? | Bytes | Cost (%CPU)| Time???? |

—————————————————————————

|?? 0 | SELECT STATEMENT |??????? |?? 593 |? 1779 |???? 3?? (0)| 00:00:01 |

|*? 1 |? INDEX RANGE SCAN| T1_IND |?? 593 |? 1779 |???? 3?? (0)| 00:00:01 |

—————————————————————————

Predicate Information (identified by operation id):

—————————————————

1 – access(“A”<600)

計算所用公式

INDEX

cost = blevel +ceiling(leaf_blocks * effective index selectivity) +ceiling(clustering_factor * effective table selectivity)

SQL> execute dbms_stats.gather_table_stats(‘ZENGMUANSHA’,’T1′);

SQL> select column_name,NUM_NULLS,NUM_DISTINCT,density from user_tab_col_statistics where table_name=’T1′;

COLUMN_NAMENUM_NULLS NUM_DISTINCT??? DENSITY ?LOW_VALUE ???HIGH_VALUE

—————————— ———- ———— ———-————

A?????????????????0???????? 9926 0.00010074?? C104C302

SQL> select LEAF_BLOCKS,BLEVEL ,clustering_factor from user_indexes where index_name=’T1_IND’;

LEAF_BLOCKSBLEVEL CLUSTERING_FACTOR

———– ———- —————–

21???????? ?1??????????????? 16

先套下公式看看

COST=1+CEIL(21*EFFECTIVE INDEX SELECTIVITY)+CEIL(16*EFFECTIVE TABLE SELECTIVITY)

有效表選擇率和有效索引選擇率 是指能定位索引和表的謂詞.

這里只有一個謂詞 a<600 并且它是表和索引的定位的謂詞.

關于謂詞區間的選擇率計算

公式=需要空間除以可用空間

可用空間=high_vlaue-low_value=12-1=11

需要空間=(high_vlaue-limit) 或(limit-low_value)或(high_vlaue-low_value)

1 month_no>8 (high_vlaue-limit)/(high_vlaue-low_value)=(12-8)/11=4/11

A<600 =>(limit- low_value)/(high_vlaue-low_value)

=>(limit- low_value)/(high_vlaue-low_value)

=>(600-C104)/(C302-C104)

不知道如何算還是采用下面的吧!

SQL> SELECT MAX(A),MIN(A) FROM T1;

MAX(A)???? MIN(A)

———- ———-

10000????????? 1

=>(600-1)/(10000-1) =0.059905990599059905990599059905991

COST=1+CEIL(21*EFFECTIVE INDEX SELECTIVITY)+CEIL(16*EFFECTIVE TABLE SELECTIVITY)

=1+CEIL(21*0.05990)+CEIL(16*0.05990)

=1+ceil(1.2579)+ceil(0.9584)

=1+1+1

=3

總結

以上是生活随笔為你收集整理的oracle通过执行计划cost,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。