bitmap to rowid執行計劃下的基數計算疑問
explain plan for
select count(*) list_count,
(case
when a.node_category is null then
a.node_name
else
a.node_category
end) node_name,
a.col2 name_alias,
a.node_category
from vodka.bpm_actinst a
where a.is_deleted = 'n'
and a.STATE not in (:1)
and a.TASK_ORGPATH = :2
and a.NODE_TYPE in (:3)
AND (a.actor = :4)
AND (arrange_type != :5 or arrange_type is null)
group by a.col2, a.node_name, a.node_category;
-----------------------------------------------------------------------------------
| Id | Operation | Name | Rows |
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 |
| 1 | HASH GROUP BY | | 1 |
|* 2 | TABLE ACCESS BY INDEX ROWID | BPM_ACTINST | 1 |
| 3 | BITMAP CONVERSION TO ROWIDS | | |
| 4 | BITMAP AND | | |
| 5 | BITMAP CONVERSION FROM ROWIDS| | |
|* 6 | INDEX RANGE SCAN | BPM_ACT_INST_ACTOR_IND | 1322 |
| 7 | BITMAP CONVERSION FROM ROWIDS| | |
|* 8 | INDEX RANGE SCAN | BPM_ACT_INST_TASK_ORGPATH_IND | 1322 |
-----------------------------------------------------------------------------------
看到兩個索引返回的基數都是1322.
對與actor上確實應該返回1322.
但是對於TASK_ORGPATH,不應該是這個基數。
------------actor
ops$adminCRMG>select 15283200-5450300 from dual;
15283200-5450300
----------------
9832900
ops$adminCRMG>select 9832900/7436 from dual;
9832900/7436
------------
1322.33728
------------TASK_ORGPATH
ops$adminCRMG>select 15283200-7307700 from dual;
15283200-7307700
----------------
7975500
ops$adminCRMG>select 7975500/2004 from dual;
7975500/2004
------------
3979.79042
explain plan for
select count(*) list_count,
(case
when a.node_category is null then
a.node_name
else
a.node_category
end) node_name,
a.col2 name_alias,
a.node_category
from vodka.bpm_actinst a
where a.is_deleted = 'n'
and a.STATE not in (:1)
and a.TASK_ORGPATH = :2
and a.NODE_TYPE in (:3)
AND (arrange_type != :5 or arrange_type is null)
group by a.col2, a.node_name, a.node_category;
------------------------------------------------------------------------------
| Id | Operation | Name | Rows |
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 147 |
| 1 | HASH GROUP BY | | 147 |
|* 2 | TABLE ACCESS BY INDEX ROWID| BPM_ACTINST | 147 |
|* 3 | INDEX RANGE SCAN | BPM_ACT_INST_TASK_ORGPATH_IND | 3980 |
------------------------------------------------------------------------------
單獨去看,是對的。ORACLE越來越詭異的讓我看不懂了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-697874/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 對一個執行計劃的疑問
- [20210926]並行執行計劃疑問.txt並行
- 執行計劃出現BITMAP CONVERSION TO ROWIDS的解釋!
- 計算表掃描中執行計劃的COST
- Oracle訪問表的執行計劃Oracle
- 執行計劃-1:獲取執行計劃
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- mysql 基於規則的執行計劃MySql
- Oracle的執行計劃及資料存取方式 (ROWID,掃描方式等)Oracle
- 雲端計算和網格計算的一些疑問
- 執行計劃
- Oracle訪問索引的執行計劃(一)Oracle索引
- Oracle訪問索引的執行計劃(二)Oracle索引
- Oracle訪問索引的執行計劃(三)Oracle索引
- Oracle訪問索引的執行計劃(四)Oracle索引
- Oracle訪問索引的執行計劃(五)Oracle索引
- mysql的執行計劃快取問題MySql快取
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- 分析執行計劃最佳化SQLORACLE的執行計劃(轉)SQLOracle
- explain執行計劃中的key_len的計算規則AI
- 基於UNION ALL的分頁查詢執行計劃問題
- [20190111]執行計劃bitmap and.txt
- SQL的執行計劃SQL
- 執行計劃的理解.
- 8i下sort*排序大小以及執行計劃的問題?排序
- Oracle 執行計劃 訪問路徑Oracle
- mysql 基於規則的執行計劃(二)MySql
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- 基於UNION ALL的分頁查詢執行計劃問題(二)
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle
- 【顯示執行計劃】在普通使用者下使用set autot 檢視執行計劃
- 執行計劃的偏差導致的效能問題