!""#
! !
$ !"# "!
%& '()*
+"# ,""#
+
,
&
#
.
/
0
.
1.
#2#
23!3!45466-
4 5
5
6
7
! 5
8 99:9 ,2%9;"!
) 4499:902%9<909:902%9
( 4499:9%
2%9<9%9:9%
2%=
m This table function displays the contents of the plan
table.
m
(
table_name IN VARCHAR2 DEFAULT
'PLAN_TABLE',
statement_id IN VARCHAR2 DEFAULT NULL,
format
IN VARCHAR2 DEFAULT 'TYPICAL
);
#
.
7!
.
#.
.3 .
.
7
.
.
#
.
.
#
.
3!
.
.
.!
.
.
8.
.
.8 9
79+
.
::
+!
#"
!
59
.
+
8
.
/! !
8#
9$ 8 .
58
"
.
;
/
.
8 2.6
905
.
!
8.
!"
# $%&#'
(##(!) ))*
(a) DBMS_XPLAN.DISPLAY
m
m
PLAN_TABLE_OUTPUT
m
m
m
m
m
m
m
m
m
m
m
-------------------------------------------------------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT
|
| 17 | 1156 | 4 (0)| 00:00:01 |
| 1 | NESTED LOOPS
|
| 17 | 1156 | 4 (0)| 00:00:01 |
|* 2 | TABLE ACCESS BY INDEX ROWID| PA_PROJECTS_ALL | 1 | 42 | 1 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN
| PA_PROJECTS_U1 | 1 |
| 0 (0)| 00:00:01 |
| 4 | TABLE ACCESS BY INDEX ROWID| PA_TASKS
| 17 | 442 | 3 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN
| PA_TASKS_N8 | 17 |
| 1 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------------------
m
m
m
m
m
m
m
m
m
m This table function displays the explain plan of any
cursor loaded in the cursor cache.
m
DBMS_XPLAN.DISPLAY_CURSOR
(
sql_id IN VARCHAR2 DEFAULT NULL,
child_number IN NUMBER DEFAULT NULL,
format IN VARCHAR2 DEFAULT 'TYPICAL
);
<
#
.
.
; +.
;
5
8
8#</
; +=>;
=>;
8!
= ; +. .
.
=>
.
3
.
#
#
#.
.
!
.
/
<
8.
.
.8
#.
4+54!
!474!454!4444
8
:
.
9
43 443 4# .
/
?
4
84
44
SELECT /* abc */
TASK.TASK_NAME, TASK.TASK_NUMBER, PROJ.SEGMENT1, PROJ.NAME
FROM PA.PA_PROJECTS_ALL PROJ, PA.PA_TASKS TASK
WHERE 1 = 1
AND PROJ.PROJECT_ID = 1001
AND TRUNC (SYSDATE) BETWEEN NVL
(PROJ.TEMPLATE_START_DATE_ACTIVE,
TO_DATE ('01-01-1900', 'MM-DD-YYYY')
)
AND NVL (PROJ.TEMPLATE_END_DATE_ACTIVE,
TRUNC (SYSDATE)
)
AND TASK.PROJECT_ID = PROJ.PROJECT_ID
Step 1:
Execute the query
SELECT U U
Step 2:
Get sql_id and child_number for the preceding statement:
$8> <
<
04@#@4
Step 3:
SELECT *
FROM TABLE (
!
PLAN_TABLE_OUTPUT
SQL_ID 1hcqg71hwa8cc, child number 0
------------------------------------SELECT /* abc*/ TASK.TASK_NAME, TASK.TASK_NUMBER, PROJ.SEGMENT1, PROJ.NAME FROM
PA.PA_PROJECTS_ALL PROJ, PA.PA_TASKS TASK WHERE 1 = 1 AND PROJ.PROJECT_ID = 1001
AND TRUNC (SYSDATE) BETWEEN NVL (PROJ.TEMPLATE_START_DATE_ACTIVE,
TO_DATE ('01-01-1900', 'MM-DD-YYYY')
)
AND NVL (PROJ.TEMPLATE_END_DATE_ACTIVE,
TRUNC (SYSDATE)
) AND TASK.PROJECT_ID
= PROJ.PROJECT_ID
Plan hash value: 3336623817
------------------------------------------------------------------------------------------------| Id | Operation
| Name
| E-Rows |E-Bytes| Cost (%CPU)| E-Time |
------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT
|
|
|
| 4 (100)|
|
| 1 | NESTED LOOPS
|
| 17 | 1156 | 4 (0)| 00:00:01 |
|* 2 | TABLE ACCESS BY INDEX ROWID| PA_PROJECTS_ALL |
1 | 42 | 1 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN
| PA_PROJECTS_U1 | 1 |
| 0 (0)|
|
| 4 | TABLE ACCESS BY INDEX ROWID| PA_TASKS
| 17 | 442 | 3 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN
| PA_TASKS_N8 | 17 |
| 1 (0)| 00:00:01 |
------------------------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id):
------------------------------------------------------------1 - SEL$1
2 - SEL$1 / PROJ@SEL$1
3 - SEL$1 / PROJ@SEL$1
4 - SEL$1 / TASK@SEL$1
5 - SEL$1 / TASK@SEL$1
Outline Data
------------/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('10.2.0.5')
OPT_PARAM('_b_tree_bitmap_plans' 'false')
OPT_PARAM('_fast_full_scan_enabled' 'false')
OPT_PARAM('_index_join_enabled' 'false')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
INDEX_RS_ASC(@"SEL$1" "PROJ"@"SEL$1" ("PA_PROJECTS_ALL"."PROJECT_ID"))
INDEX_RS_ASC(@"SEL$1" "TASK"@"SEL$1" ("PA_TASKS"."PROJECT_ID"
"PA_TASKS"."PM_TASK_REFERENCE"))
LEADING(@"SEL$1" "PROJ"@"SEL$1" "TASK"@"SEL$1")
USE_NL(@"SEL$1" "TASK"@"SEL$1")
END_OUTLINE_DATA
*/
Predicate Information (identified by operation id):
--------------------------------------------------2 - filter((NVL("PROJ"."TEMPLATE_START_DATE_ACTIVE",TO_DATE(' 1900-01-01 00:00:00',
'syyyy-mm-dd hh24:mi:ss'))<=TRUNC(SYSDATE@!) AND
NVL("PROJ"."TEMPLATE_END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!)))
3 - access("PROJ"."PROJECT_ID"=1001)
5 - access("TASK"."PROJECT_ID"=1001)
Column Projection Information (identified by operation id):
----------------------------------------------------------1 - "PROJ"."NAME"[VARCHAR2,30], "PROJ"."SEGMENT1"[VARCHAR2,25],
"TASK"."TASK_NUMBER"[VARCHAR2,25], "TASK"."TASK_NAME"[VARCHAR2,20]
2 - "PROJ"."NAME"[VARCHAR2,30], "PROJ"."SEGMENT1"[VARCHAR2,25]
3 - "PROJ".ROWID[ROWID,10]
4 - "TASK"."TASK_NUMBER"[VARCHAR2,25], "TASK"."TASK_NAME"[VARCHAR2,20]
5 - "TASK".ROWID[ROWID,10]
Note
----- Warning: basic plan statistics not available. These are only collected when:
* hint 'gather_plan_statistics' is used for the statement or
* parameter 'statistics_level' is set to 'ALL', at session or system level
PLAN_TABLE_OUTPUT
SQL_ID 4azc9hf0kzg5g, child number 0
------------------------------------SELECT /* abc*/ /*+ GATHER_PLAN_STATISTICS */ TASK.TASK_NAME,
TASK.TASK_NUMBER,
PROJ.SEGMENT1, PROJ.NAME FROM PA.PA_PROJECTS_ALL PROJ, PA.PA_TASKS TASK
WHERE 1 = 1
AND PROJ.PROJECT_ID = 1001 AND TRUNC (SYSDATE) BETWEEN NVL
(PROJ.TEMPLATE_START_DATE_ACTIVE,
TO_DATE
('01-01-1900', 'MM-DD-YYYY')
)
AND NVL (PROJ.TEMPLATE_END_DATE_ACTIVE,
TRUNC
(SYSDATE)
) AND TASK.PROJECT_ID = PROJ.PROJECT_ID
Plan hash value: 3336623817
------------------------------------------------------------------------------------------------| Id | Operation
| Name
| Starts | A-Rows | A-Time | Buffers |
------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT
|
| 1 | 7 |00:00:00.01 |
6|
| 1 | NESTED LOOPS
|
| 1 | 7 |00:00:00.01 |
6|
|* 2 | TABLE ACCESS BY INDEX ROWID| PA_PROJECTS_ALL | 1 | 1 |00:00:00.01 |
|* 3 | INDEX UNIQUE SCAN
| PA_PROJECTS_U1 | 1 | 1 |00:00:00.01 |
2|
| 4 | TABLE ACCESS BY INDEX ROWID| PA_TASKS
| 1 | 7 |00:00:00.01 |
3|
|* 5 | INDEX RANGE SCAN
| PA_TASKS_N8 | 1 | 7 |00:00:00.01 |
2|
-------------------------------------------------------------------------------------------------
3|
)$ -/0
))*4
*)/
/789:%;<!(:7==7--->(5 700?
PLAN_TABLE_OUTPUT
SQL_ID byc2atjb80w2z, child number 0
------------------------------------SELECT /* bambo*/ TASK.TASK_NAME, TASK.TASK_NUMBER, PROJ.SEGMENT1,
PROJ.NAME FROM PA.PA_PROJECTS_ALL PROJ, PA.PA_TASKS TASK WHERE 1 = 1
AND PROJ.PROJECT_ID = 1001 AND TRUNC (SYSDATE) BETWEEN NVL
(PROJ.TEMPLATE_START_DATE_ACTIVE,
TO_DATE ('01-01-1900', 'MM-DD-YYYY')
)
| Name
|
|
|
|
| PA_PROJECTS_U1 |
| PA_TASKS_N8
-------------------------------------------------------Cont
3|
)$ -/0
m
m
SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY_CURSOR ('d5k3znj9dfaw3', NULL, 'allstats last -rows +alias +outline
PLAN_TABLE_OUTPUT
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
-------------------------------------------------------| Id | Operation
| Name
|
-------------------------------------------------------| 0 | SELECT STATEMENT
|
|
| 1 | NESTED LOOPS
|
|
|* 2 | TABLE ACCESS BY INDEX ROWID| PA_PROJECTS_ALL |
|* 3 | INDEX UNIQUE SCAN
| PA_PROJECTS_U1 |
| 4 | TABLE ACCESS BY INDEX ROWID| PA_TASKS
|
|* 5 | INDEX RANGE SCAN
| PA_TASKS_N8 |
--------------------------------------------------------
m
m
m
m
m
m
m
1 - SEL$1
2 - SEL$1 / PROJ@SEL$1
3 - SEL$1 / PROJ@SEL$1
4 - SEL$1 / TASK@SEL$1
+predicate')) ;
Outline Data
------------/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('10.2.0.5')
OPT_PARAM('_b_tree_bitmap_plans' 'false')
OPT_PARAM('_fast_full_scan_enabled' 'false')
OPT_PARAM('_index_join_enabled' 'false')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
INDEX_RS_ASC(@"SEL$1" "PROJ"@"SEL$1" ("PA_PROJECTS_ALL"."PROJECT_ID"))
INDEX_RS_ASC(@"SEL$1" "TASK"@"SEL$1" ("PA_TASKS"."PROJECT_ID"
"PA_TASKS"."PM_TASK_REFERENCE"))
LEADING(@"SEL$1" "PROJ"@"SEL$1" "TASK"@"SEL$1")
USE_NL(@"SEL$1" "TASK"@"SEL$1")
END_OUTLINE_DATA
*/
Predicate Information (identified by operation id):
--------------------------------------------------2 - filter((NVL("PROJ"."TEMPLATE_START_DATE_ACTIVE",TO_DATE('
1900-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))<=TRUNC(SYSDATE@!) AND
NVL("PROJ"."TEMPLATE_END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!
)))
3 - access("PROJ"."PROJECT_ID"=1001)
5 - access("TASK"."PROJECT_ID"=1001)
Note
----- Warning: basic plan statistics not available. These are only collected when:
* hint 'gather_plan_statistics' is used for the statement or
* parameter 'statistics_level' is set to 'ALL', at session or system level
3|
Cont
Outline Data
------------/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('10.2.0.5')
OPT_PARAM('_b_tree_bitmap_plans' 'false')
OPT_PARAM('_fast_full_scan_enabled' 'false')
OPT_PARAM('_index_join_enabled' 'false')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
INDEX_RS_ASC(@"SEL$1" "PROJ"@"SEL$1" ("PA_PROJECTS_ALL"."PROJECT_ID"))
INDEX_RS_ASC(@"SEL$1" "TASK"@"SEL$1" ("PA_TASKS"."PROJECT_ID"
"PA_TASKS"."PM_TASK_REFERENCE"))
LEADING(@"SEL$1" "PROJ"@"SEL$1" "TASK"@"SEL$1")
USE_NL(@"SEL$1" "TASK"@"SEL$1")
END_OUTLINE_DATA
*/
Predicate Information (identified by operation id):
--------------------------------------------------2 - filter((NVL("PROJ"."TEMPLATE_START_DATE_ACTIVE",TO_DATE(' 1900-01-01 00:00:00',
'syyyy-mm-dd hh24:mi:ss'))<=TRUNC(SYSDATE@!) AND
NVL("PROJ"."TEMPLATE_END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!)))
3 - access("PROJ"."PROJECT_ID"=1001)
5 - access("TASK"."PROJECT_ID"=1001)