a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 147|回复: 0

[考试辅导] Oracle技术:通过EXPLAINPLANFOR查看DDL语句执行计划

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
在9i及以前版本,Oracle只能看到DML的执行打算,不外从10g起头,经由过程EXPLAIN PLAN FOR的体例,已经可以看到DDL语句的执行打算了。
0 C* U. H' q. p- U" r. V* T这对于研究CREATE TABLE AS SELECT、CREATE MATERIALIZED VIEW AS SELECT以及CREATE INDEX,ALTER INDEX REBUILD等语句有很大的辅佐。
/ t2 g& s2 w- c1 E4 ~: _举个简单的例子,Oracle的文档上对于索引的成立有如下描述: 0 h8 ^- g; ~! u7 X$ t( z
The optimizer can use an existing index to build another index. This results in a much faster index build. 3 ]: T2 f* _5 Y& A
如不美旁观不到DDL的执行打算,只能按照执行时刻的长短去猜测Oracle的具体执行打算,可是这种体例没有足够的说服力。可是经由过程DDL的执行打算,就使得结不美观一目了然了。
( W$ y; Z: @6 C5 O& YSQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS; " w1 C+ p7 r5 d# D! G
表已建树。
! i0 @7 M# |% T6 a% ~SQL> EXPLAIN PLAN FOR
/ {1 U1 N. O: e! e/ V2 \: d2 CREATE INDEX IND_T_NAME ON T(OBJECT_NAME); " t! Z; z# {0 c' e  q0 ?, o2 R
已诠释。 0 w; W1 L" D" M% y  r
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); * g/ O- a+ c/ A  K" h' \
PLAN_TABLE_OUTPUT
$ \" ?2 L( l# p( J0 Q------------------------------------------------------------------------------------
. O5 b7 S$ c2 u/ hPlan hash value: 3035241083 * b+ y# \. E; h; P* y3 h3 z! b0 w) V
-------------------------------------------------------------------------------------
9 b! C8 g# F$ n' E" ^| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
! y9 c  k9 W) R- }( l  _. X------------------------------------------------------------------------------------- ( N. @, z5 b4 j5 ^3 X# O
| 0 | CREATE INDEX STATEMENT | | 57915 | 3732K| 75 (2)| 00:00:01 |   k8 D7 G* W7 M# }7 t
| 1 | INDEX BUILD NON UNIQUE| IND_T_NAME | | | | |
0 \/ \% g2 a8 p8 l| 2 | SORT CREATE INDEX | | 57915 | 3732K| | |
( T" p% u* i! L( I| 3 | TABLE ACCESS FULL | T | 57915 | 3732K| 41 (3)| 00:00:01 | : D, C  k5 O7 K1 k% V
------------------------------------------------------------------------------------- % W! p& U4 E" g* O
Note ( [, Q; H" T" o# Q$ t; j4 P" p0 N# |/ u
----- + G2 m0 s) L/ b/ c; S" H6 K' V5 Y
- estimated index size: 5242K bytes
/ Z6 y) K  j: o0 b  g已选择14行。 : i+ a$ K; x. L. i! q0 M
SQL> CREATE INDEX IND_T_OWNER_NAME ON T(OWNER, OBJECT_NAME);
% |; x; v1 g" F索引已建树。 ' B/ Q' A; e5 N. Q6 @& ?
SQL> EXPLAIN PLAN FOR 0 C" k; l' s$ Q7 ]
2 CREATE INDEX IND_T_NAME ON T(OBJECT_NAME); 1 y4 K' V: p  `+ Q- _
已诠释。
; B: X6 @& N. MSQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
5 i6 \  X# e9 P, Z, l6 d1 JPLAN_TABLE_OUTPUT
/ h/ u  L2 G) l-------------------------------------------------------------------------------------------
5 Z" p+ v; H' j" O+ Y2 iPlan hash value: 517242163
  a) }# x+ O; v-------------------------------------------------------------------------------------------
/ f! f% i0 G+ m| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
: v2 {6 `1 S6 U4 l  f------------------------------------------------------------------------------------------- $ H6 T6 H, G7 L  x; H" M; @
| 0 | CREATE INDEX STATEMENT | | 57915 | 3732K| 75 (2)| 00:00:01 | ) v% v; ~: b  d6 O
| 1 | INDEX BUILD NON UNIQUE| IND_T_NAME | | | | | 7 f0 X! b; z2 k* F2 K  E' L: l" g
| 2 | SORT CREATE INDEX | | 57915 | 3732K| | | ) t  y1 g, h8 P6 I1 t4 @% A) Q. k
| 3 | INDEX FAST FULL SCAN| IND_T_OWNER_NAME | | | | |
/ z  r8 R0 P: Y; u! Z------------------------------------------------------------------------------------------- - z5 H9 V2 R' Y& e
Note * F' q* |9 v5 A8 G7 g: _
-----
( F  L& Q: X5 ?- estimated index size: 5242K bytes
' r" S  O, u- |已选择14行。
5 g0 J: A; ?" [! o  rSQL> SET AUTOT ON 8 X; g) x2 q7 m; p% u' m
SQL> CREATE INDEX IND_T_NAME ON T(OBJECT_NAME);
8 w6 S/ p/ U: b" l1 o7 t索引已建树。
) P: C3 _. ~$ A" L, z/ ]注重,查看DDL的执行打算需要使用EXPLAIN PLAN FOR,AUTOTRACE对于DDL是无效的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-28 08:15 , Processed in 0.225044 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表