oracle cost計算(轉自itpub網友)
--------------資料庫版本
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
---------------表資訊
表塊數-------64157
_db_file_optimizer_read_count=16--------------真正計算cost的時候是按照這個塊來計算,非db_file_multiblock_read_count
db_file_multiblock_read_count=16
-----------系統統計資訊(noworkload統計資訊)
SQL> select
2 pname, pval1
3 from
4 sys.aux_stats$;
PNAME PVAL1
------------------------------ ----------
CPUSPEEDNW 833.212
IOSEEKTIM 10
IOTFRSPEED 4096
------------cost計算公式,cost=io_cost+cup_cost
io_cost=(總塊數/mbrc)*(mreadtim/sreadtim)
這裡的mbrc即為_db_file_optimizer_read_count的值。
sreadtim=ioseektim + db_block_size/iotrfrspeed=10+8192/4096=12
mreadtim=ioseektim+(db_file_multiblock_read_count* db_block_size)/iotrfrspeed==12+(16*8192)/4096=42
cpu_cost=cpu_cost=cpucycles/(cpuspeed*sreadtim)
其中cpucycles的值根據plan_table中的cpu_cost來獲得
-------------執行一個查詢
SQL> select count(*) from wxh_tbd;
COUNT(*)
----------
448497
執行計劃
----------------------------------------------------------
Plan hash value: 853361775
----------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
----------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 14088 (1)| 00:02:50 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| WXH_TBD | 448K|14088 (1)| 00:02:50 |
----------------------------------------------------------------------
我們看看這個cost是如何計算出來的。
io_cost=(總塊數/mbrc)*(mreadtim/sreadtim)
=(64157/16)*(42/12)=14036
cpu_cost=cpucycles/(cpuspeed*sreadtim)=524164776/(833.212*12*1000)=52.4241106
總cost=14036+52=14088
跟oracle計算出來的是一致的。
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
---------------表資訊
表塊數-------64157
_db_file_optimizer_read_count=16--------------真正計算cost的時候是按照這個塊來計算,非db_file_multiblock_read_count
db_file_multiblock_read_count=16
-----------系統統計資訊(noworkload統計資訊)
SQL> select
2 pname, pval1
3 from
4 sys.aux_stats$;
PNAME PVAL1
------------------------------ ----------
CPUSPEEDNW 833.212
IOSEEKTIM 10
IOTFRSPEED 4096
------------cost計算公式,cost=io_cost+cup_cost
io_cost=(總塊數/mbrc)*(mreadtim/sreadtim)
這裡的mbrc即為_db_file_optimizer_read_count的值。
sreadtim=ioseektim + db_block_size/iotrfrspeed=10+8192/4096=12
mreadtim=ioseektim+(db_file_multiblock_read_count* db_block_size)/iotrfrspeed==12+(16*8192)/4096=42
cpu_cost=cpu_cost=cpucycles/(cpuspeed*sreadtim)
其中cpucycles的值根據plan_table中的cpu_cost來獲得
-------------執行一個查詢
SQL> select count(*) from wxh_tbd;
COUNT(*)
----------
448497
執行計劃
----------------------------------------------------------
Plan hash value: 853361775
----------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
----------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 14088 (1)| 00:02:50 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| WXH_TBD | 448K|14088 (1)| 00:02:50 |
----------------------------------------------------------------------
我們看看這個cost是如何計算出來的。
io_cost=(總塊數/mbrc)*(mreadtim/sreadtim)
=(64157/16)*(42/12)=14036
cpu_cost=cpucycles/(cpuspeed*sreadtim)=524164776/(833.212*12*1000)=52.4241106
總cost=14036+52=14088
跟oracle計算出來的是一致的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22907091/viewspace-707808/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle cost計算方式Oracle
- oracle rac管理維護筆記_轉自網友Oracle筆記
- oracle實驗記錄 (計算hash join cost)Oracle
- 【轉】OPTIMIZER_INDEX_COST_ADJ與成本計算Index
- in list查詢計算cost
- oracle實驗記錄 (oracle b*tree index訪問Cost計算(1))OracleIndex
- oracle實驗記錄 (FTS的cost與基數計算)Oracle
- oracle實驗記錄 (全表掃描COST計算方法)Oracle
- 等頻直方圖,計算COST直方圖
- 諮詢就是實施(轉自ITPUB)
- OPTIMIZER_INDEX_COST_ADJ與成本計算Index
- 計算表掃描中執行計劃的COST
- oracle 鎖(轉自網路)Oracle
- 白鱔老師受邀親臨ITPUB社群與網友交流DBA思想,感悟Oracle資料本質Oracle
- noworkload下全表掃描cost的計算
- oracle審計(整理自網路)Oracle
- RAC(Oracle網格計算技術)Oracle
- itpub上的ORACLE之常用FAQ V1.0(轉)Oracle
- 網友趣文:《東邪西毒》之程式設計師版 (轉)程式設計師
- oracle tkprof使用小結 -- 轉自網路Oracle
- 實施ERP的困難在於BPR(轉自計算機世界網 )計算機
- Oracle ERP From ItpubOracle
- 【計算機網路知識掃盲】03、計算機網路的功能(轉)計算機網路
- 【計算機網路知識掃盲】02、計算機網路的概念(轉)計算機網路
- 【計算機網路知識掃盲】04、計算機網路分類(轉)計算機網路
- oracle sys_context 使用小記_轉摘骨骨網友筆記OracleContext筆記
- Oracle 監聽投毒COST解決Oracle
- 網友問題摘抄,不定列轉換
- CBO Cost Formulas基於成本優化器的成本計算公式大全ORM優化公式
- 計算機網路自頂向下--應用層計算機網路
- 轉摘_itpub_資料庫設計幾則資料庫
- 關於你在“白鱔老師受邀親臨ITPUB社群與網友交流DBA思想,感悟Oracle資料本質”的帖子Oracle
- itpub網友問題--如何讓某資料庫使用者不能查詢all_users資料庫
- 【計算機網路知識掃盲】05、計算機網路協議及網路模型(轉)計算機網路協議模型
- 網友對sars病毒事件的對話(轉)事件
- Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ(轉)Oracle 10gIndex
- 轉享:雲端計算導致網管消亡?
- 《計算機網路:自頂向下方法》合集前言計算機網路