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 and 10g 透過SQL_ADDRESS 或sql_id查詢執行計劃SQL
- Oracle 9i變數窺視引起執行計劃異常故障報告Oracle變數
- TiDB與MySQL的SQL差異及執行計劃簡析TiDBMySql
- 9i和10g上rman全備的一點差別
- mac和windows執行maven命令的差異MacWindowsMaven
- 執行計劃-1:獲取執行計劃
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- Akka 和 Storm 的設計差異ORM
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- MySQL執行計劃MySql
- SYBASE執行計劃
- MySQL 執行計劃MySql
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- Oracle 變數窺視引起執行計劃異常故障分析Oracle變數
- Python並行程式設計(七):多程式的基本使用和與多執行緒的差異Python並行行程程式設計執行緒
- MySQL執行計劃解析MySql
- mysql explain 執行計劃MySqlAI
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- 執行計劃執行步驟原則
- 【PG執行計劃】Postgresql資料庫執行計劃統計資訊簡述SQL資料庫
- php程式碼審計之命令執行中windows/linux的差異化問題PHPWindowsLinux
- python程式計算執行時間差Python
- mongodb 常見運維監控和執行計劃MongoDB運維
- Oceanbase 和 TiDB 粗淺對比之 - 執行計劃TiDB
- mongodb執行計劃解釋MongoDB
- 檢視 OceanBase 執行計劃
- MySQL執行計劃解析(四)MySql
- 讀懂MySQL執行計劃MySql
- Explain執行計劃詳解AI
- PostgreSQL執行計劃變化SQL
- explain 查詢執行計劃AI
- UDP和TCP的差異UDPTCP
- [20190111]執行計劃bitmap and.txt
- mysql explain 執行計劃詳解MySqlAI
- 十六、Mysql之Explain執行計劃MySqlAI