10g和9i執行計劃差異
在oracle9i中執行計劃如下分析:
SQL>
select ename,dname from emp, dept where emp.deptno=dept.deptno and
dept.dname in ('ACCOUNTING','RESEARCH','SALES','OPERATIONS');
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 NESTED LOOPS
2 1 TABLE ACCESS (FULL) OF 'EMP'
3 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
4 3 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
關於前面的兩個數字,第一個是狀態ID,第二個是父ID。
就是如下所示:0-->1-->2
|
|-->3-->4
在上圖裡,0的執行依靠1,1的執行又依賴2和3,2是沒有子ID的,所以2最先執行,然後是4,在然後是3;然後2和3的結果傳回1。
在oracle10g中執行計劃的顯示結果發生了改變:
SQL> set linesize 200
SQL> select count(*) from site_connect_detail;
COUNT(*)
----------
16250151
執行計劃
----------------------------------------------------------
Plan hash value: 2918895406
----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 15290 (4)| 00:03:04 | | |
| 1 | SORT AGGREGATE | | 1 | | | | |
| 2 | PARTITION RANGE ALL| | 14M| 15290 (4)| 00:03:04 | 1 | 44 |
| 3 | TABLE ACCESS FULL | SITE_CONNECT_DETAIL | 14M| 15290 (4)| 00:03:04 | 1 | 44 |
----------------------------------------------------------------------------------------------------
統計資訊
----------------------------------------------------------
0 recursive calls
0 db block gets
74696 consistent gets
74052 physical reads
0 redo size
411 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
我們可以按照the rightmost-uppermost(最右最上) operation of an explain 規則來分析執行計劃。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017473/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 9i 升級到 10g SQL執行計劃校驗SQL
- TiDB與MySQL的SQL差異及執行計劃簡析TiDBMySql
- 9i奇怪的AJ執行計劃
- Oracle 9i變數窺視引起執行計劃異常故障報告Oracle變數
- VIEW和SYNONYM引起的執行計劃的異常View
- mac和windows執行maven命令的差異MacWindowsMaven
- oracle 10g執行計劃 (轉帖)Oracle 10g
- Oracle 9i 開啟autotrace on 檢視執行計劃Oracle
- 9i and 10g 透過SQL_ADDRESS 或sql_id查詢執行計劃SQL
- 9i and 10g 通過SQL_ADDRESS 或sql_id查詢執行計劃SQL
- SYS_CONNECT_BY_PATH函式在9i,10G下導致執行計劃改變函式
- Oracle 索引和執行計劃Oracle索引
- mysql索引和執行計劃MySql索引
- 10G中檢視歷史執行計劃資訊
- 執行計劃-1:獲取執行計劃
- 對比前後執行計劃,發現問題 - 9i
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- 執行計劃
- oracle 9i 獲取sql執行計劃(書寫長的sql)OracleSQL
- sql執行計劃變更和刪除快取中執行計劃的方法SQL快取
- 同樣SQL同樣執行計劃在不同節點執行時間差很遠SQL
- 簡單探討一下10G下柱狀圖和執行計劃
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- 使用SPM和STA進行固定執行計劃
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle
- 資訊系統專案規劃和產品規劃的差異
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- 分析執行計劃最佳化SQLORACLE的執行計劃(轉)SQLOracle
- Oracle 變數窺視引起執行計劃異常故障分析Oracle變數
- ERP差異來源和差異處理