共计 6431 个字符,预计需要花费 17 分钟才能阅读完成。
行业资讯
数据库
关系型数据库
dbms_xplan.display_cursor 包与 ADVANCED ALLSTATS LAST PEEKED_BINDS 区别是什么
dbms_xplan.display_cursor 包与 ADVANCED ALLSTATS LAST PEEKED_BINDS 区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
结论 1:使用 ALL LAST 比 typical 多了 Query Block Name / Object
Alias 和 Column Projection Information(列的信息)
结论 2:ADVANCED ALLSTATS LAST PEEKED_BINDS 比 ALL LAST 多了这些内容:outline 和 NOTE,当然如果使用了绑定变量的话,还有绑定变量信息
结论 3:一般来说 ALL LAST 就已经够用了。
使用一个不使用绑定变量的语句来做对比试验:
select /*weiwei*/ e.ename,d.dname from scott.emp e,scott.dept d where
e.deptno=d.deptno;
SQL SELECT *
FROM table (DBMS_XPLAN.DISPLAY_CURSOR);
PLAN_TABLE_OUTPUT
——————————————————————————————————————————————————————————————————–
SQL_ID 1qwpbwszr5hwb,
child number 0
————————————-
select /*weiwei*/ e.ename,d.dname from
scott.emp e,scott.dept d where
e.deptno=d.deptno
Plan hash value: 844388907
—————————————————————————————-
| Id
Operation | Name
| Rows | Bytes | Cost (%CPU)|
Time |
—————————————————————————————-
|
0 | SELECT
STATEMENT
| |
| | 6
(100)| |
|
1 | MERGE
JOIN | |
14 | 308 |
6 (17)| 00:00:01 |
|
2 | TABLE ACCESS BY INDEX ROWID|
DEPT | 4 |
52 |
2 (0)| 00:00:01 |
|
3 | INDEX FULL
SCAN | PK_DEPT | 4 |
|
1 (0)| 00:00:01 |
|*
4 | SORT
JOIN | |
14 | 126 |
4 (25)| 00:00:01 |
|
5 | TABLE ACCESS
FULL | EMP
| 14 | 126 |
3 (0)| 00:00:01 |
—————————————————————————————-
Predicate Information (identified by
operation id):
—————————————————
access(E . DEPTNO = D . DEPTNO)
filter(E . DEPTNO = D . DEPTNO)
24 rows selected.
select
sql_id,CHILD_NUMBER,sql_text
from v$SQL where sql_text like %weiwei% and sql_text not like %like%
获得 SQL_id 为 1qwpbwszr5hwb,CHILD_NUMBER 为 0
select * from table(dbms_xplan.display_cursor( 1qwpbwszr5hwb ,null, ALL LAST
SQL select *
from table(dbms_xplan.display_cursor( 1qwpbwszr5hwb ,null, ALL LAST
PLAN_TABLE_OUTPUT
——————————————————————————————————————————————————————————————————–
SQL_ID 1qwpbwszr5hwb,
child number 0
————————————-
select /*weiwei*/
e.ename,d.dname from scott.emp e,scott.dept d where
e.deptno=d.deptno
Plan hash value:
844388907
—————————————————————————————-
| Id |
Operation | Name
| Rows | Bytes | Cost (%CPU)|
Time |
—————————————————————————————-
| 0 | SELECT
STATEMENT
| |
| | 6
(100)| |
| 1 |
MERGE
JOIN | |
14 | 308 |
6 (17)| 00:00:01 |
| 2 |
TABLE ACCESS BY INDEX ROWID| DEPT
| 4 | 52 |
2 (0)| 00:00:01 |
| 3 |
INDEX FULL SCAN | PK_DEPT | 4 |
|
1 (0)| 00:00:01 |
|* 4 |
JOIN | |
14 | 126 |
4 (25)| 00:00:01 |
| 5 |
TABLE ACCESS FULL | EMP
| 14 | 126 |
3 (0)| 00:00:01 |
—————————————————————————————-
Query
Block Name / Object Alias (identified by operation id):
————————————————————-
1 – SEL$1
2 – SEL$1 / D@SEL$1
3 – SEL$1 / D@SEL$1
5 – SEL$1 / E@SEL$1
Predicate
Information (identified by operation id):
—————————————————
4 –
access(E . DEPTNO = D . DEPTNO)
filter(E . DEPTNO = D . DEPTNO)
Column
Projection Information (identified by operation id):
———————————————————–
1 –
D . DNAME [VARCHAR2,14],
E . ENAME [VARCHAR2,10]
2 –
D . DEPTNO [NUMBER,22],
D . DNAME [VARCHAR2,14]
3 – D .ROWID[ROWID,10],
D . DEPTNO [NUMBER,22]
4 – (#keys=1)
E . DEPTNO [NUMBER,22],
E . ENAME [VARCHAR2,10]
5 –
E . ENAME [VARCHAR2,10],
E . DEPTNO [NUMBER,22]
41 rows selected.
结论 1:使用 ALL LAST 比 typical 多了 Query Block Name / Object
Alias 和 Column Projection Information(列的信息)
再对比 ALL LAST 与 ADVANCED ALLSTATS LAST PEEKED_BINDS
最后最全的是 65 行
select
* from table(dbms_xplan.display_cursor( 1qwpbwszr5hwb ,0, ADVANCED ALLSTATS LAST PEEKED_BINDS
SQL select *
from table(dbms_xplan.display_cursor( 1qwpbwszr5hwb ,0, ADVANCED ALLSTATS LAST
PEEKED_BINDS
PLAN_TABLE_OUTPUT
——————————————————————————————————————————————————————————————————–
SQL_ID 1qwpbwszr5hwb,
child number 0
————————————-
select /*weiwei*/
e.ename,d.dname from scott.emp e,scott.dept d where
e.deptno=d.deptno
Plan hash value:
844388907
——————————————————————————————————————–
| Id |
Operation | Name
| E-Rows |E-Bytes| Cost (%CPU)|
E-Time | OMem |
1Mem | Used-Mem |
——————————————————————————————————————–
| 0 | SELECT
STATEMENT
| | | | 6
(100)| | | | |
| 1 |
MERGE
JOIN | |
14 | 308 | 6 (17)|
00:00:01
| | | |
| 2 |
TABLE ACCESS BY INDEX ROWID| DEPT
| 4 | 52 |
2 (0)| 00:00:01
| | | |
| 3 |
INDEX FULL SCAN | PK_DEPT | 4 | | 1
(0)| 00:00:01
| | | |
|* 4 |
JOIN | |
14 | 126 | 4 (25)|
00:00:01 | 2048 | 2048 |
2048 (0)|
| 5 |
TABLE ACCESS FULL | EMP
| 14 | 126 |
3 (0)| 00:00:01
| | | |
——————————————————————————————————————–
Query Block Name /
Object Alias (identified by operation id):
————————————————————-
1 – SEL$1
2 – SEL$1 / D@SEL$1
3 – SEL$1 / D@SEL$1
5 – SEL$1 / E@SEL$1
Outline
Data
————-
/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE(11.2.0.3)
DB_VERSION(11.2.0.3)
OPT_PARAM(query_rewrite_enabled
false )
ALL_ROWS
OUTLINE_LEAF(@ SEL$1)
INDEX(@ SEL$1
D @ SEL$1 (DEPT . DEPTNO))
FULL(@ SEL$1
E @ SEL$1 )
LEADING(@ SEL$1
D @ SEL$1 E @ SEL$1 )
USE_MERGE(@ SEL$1
E @ SEL$1 )
END_OUTLINE_DATA
*/
Predicate
Information (identified by operation id):
—————————————————
4 –
access(E . DEPTNO = D . DEPTNO)
filter(E . DEPTNO = D . DEPTNO)
Column Projection
Information (identified by operation id):
———————————————————–
1 –
D . DNAME [VARCHAR2,14],
E . ENAME [VARCHAR2,10]
2 –
D . DEPTNO [NUMBER,22],
D . DNAME [VARCHAR2,14]
3 – D .ROWID[ROWID,10],
D . DEPTNO [NUMBER,22]
4 – (#keys=1)
E . DEPTNO [NUMBER,22],
E . ENAME [VARCHAR2,10]
5 –
E . ENAME [VARCHAR2,10],
E . DEPTNO [NUMBER,22]
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
rows selected.
结论 2:ADVANCED ALLSTATS LAST PEEKED_BINDS 比 ALL LAST 多了这些内容:outline 和 NOTE,当然如果使用了绑定变量的话,还有绑定变量信息
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。