11G访问DBA_OBJECTS和V$LOCK视图时HANG住
上一篇 / 下一篇 2008-08-27 23:56:26 / 个人分类:Bug
今天在检查
SQL> SELECT * FROM V$VERSION;
BANNERITPUB个人空间W1K:K;l
~
k:E$uV
--------------------------------------------------------------------------------
Lm]HY7ra
T0Oracle Database
S`|7F8B^ ^o
u0PL/SQL Release 11.1.0.6.0 - Production
Lkx5B&` h3a0CORE 11.1.0.6.0 ProductionITPUB个人空间1Q1@qg4M&@r
TNS for Solaris: Version 11.1.0.6.0 - Production
V@+b-EI}kFk0NLSRTL Version 11.1.0.6.0 - Production
下面看看造成问题的SQL:
SQL> SET TIMING ONITPUB个人空间^iQw+I"_C5~Pk
SQL> SET AUTOT ON
(GRa$Lm0SQL> SELECT OWNER, OBJECT_NAME FROM DBA_OBJECTSITPUB个人空间,RYrC@ Mq8QG
2 WHERE OBJECT_ID IN (SELECT ID1 FROM V$LOCK WHERE SID = 305);
OWNER OBJECT_NAMEITPUB个人空间"`(r-R,us:?
------------------------------ ------------------------------
PV(p#|[G0SYS ORA$BASEITPUB个人空间R4^.u&@A.uIVN{(U%n`
TEST T_PARALLEL
已用时间: 00: 26: 49.82
执行计划
P%\h6z}0----------------------------------------------------------ITPUB个人空间Gk9Ey2^4L
Plan hash value: 444070136
---------------------------------------------------------------------------------------------------ITPUB个人空间7yz,OLB1r*A*HQ?
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |ITPUB个人空间LB w'ys
---------------------------------------------------------------------------------------------------
N;f5Y(]R"H0| 0 | SELECT STATEMENT | | 660 | 63360 | 181 (5)| 00:00:03 |
7f5A0A+u0O fGYI)P0|* 1 | FILTER | | | | | |
P&eL:Jq l4{0| 2 | VIEW | DBA_OBJECTS | 65980 | 6185K| 181 (5)| 00:00:03 |
-v"[P-\XY$@Xd0| 3 | UNION-ALL | | | | | |ITPUB个人空间 eJM|
IO x'`^
|* 4 | FILTER | | | | | |
:|V"ux^rJ0|* 5 | HASH JOIN | | 71138 | 8475K| 178 (5)| 00:00:03 |
6C*a(w']J0C5A*\j#i0| 6 | TABLE ACCESS FULL | USER$ | 87 | 1479 | 3 (0)| 00:00:01 |ITPUB个人空间(RB!|5E6xH7D
|* 7 | HASH JOIN | | 71138 | 7294K| 174 (5)| 00:00:03 |ITPUB个人空间x&[ s@8ufq3?(ZS4Z
| 8 | INDEX FULL SCAN | I_USER2 | 87 | 2001 | 1 (0)| 00:00:01 |
/]\wna)l4@0|* 9 | TABLE ACCESS FULL | OBJ$ | 71138 | 5696K| 172 (4)| 00:00:03 |ITPUB个人空间{2Rr!gOJ/G
|* 10 | TABLE ACCESS BY INDEX ROWID| IND$ | 1 | 8 | 2 (0)| 00:00:01 |
0ac(t,wK]Aomu0|* 11 | INDEX UNIQUE SCAN | I_IND1 | 1 | | 1 (0)| 00:00:01 |
NHe%]+@0| 12 | NESTED LOOPS | | 1 | 28 | 2 (0)| 00:00:01 |
"S-V#y2zxOK'O7S!}F0|* 13 | INDEX FULL SCAN | I_USER2 | 1 | 20 | 1 (0)| 00:00:01 |ITPUB个人空间I#n6G*n N4~yb n
|* 14 | INDEX RANGE SCAN | I_OBJ4 | 1 | 8 | 1 (0)| 00:00:01 |ITPUB个人空间$T-G3oqb$_
| 15 | NESTED LOOPS | | 2 | 86 | 3 (0)| 00:00:01 |
:~Wg/hH@0| 16 | INDEX FULL SCAN | I_LINK1 | 2 | 52 | 1 (0)| 00:00:01 |ITPUB个人空间fF~&G~1OB-y
| 17 | TABLE ACCESS CLUSTER | USER$ | 1 | 17 | 1 (0)| 00:00:01 |ITPUB个人空间x%UaNT6w6z
w
|* 18 | INDEX UNIQUE SCAN | I_USER# | 1 | | 0 (0)| 00:00:01 |
E
f0JDx(R G.xCV [0| 19 | NESTED LOOPS | | 1 | 76 | 1 (100)| 00:00:01 |
Hyy
oA'n+s M(Q
Of0|* 20 | HASH JOIN | | 1 | 57 | 1 (100)| 00:00:01 |
^:]t9g3nSBY+rJ0|* 21 | FIXED TABLE FULL | X$KSUSE | 1 | 32 | 0 (0)| 00:00:01 |
axX,WJg!]3jTx!M0| 22 | VIEW | GV$_LOCK | 10 | 250 | 0 (0)| 00:00:01 |ITPUB个人空间
pljaPN9ha
| 23 | UNION-ALL | | | | | |ITPUB个人空间3_{R!v.FE
|* 24 | FILTER | | | | | |
tUc:g+{9C)H0| 25 | VIEW | GV$_LOCK1 | 2 | 178 | 0 (0)| 00:00:01 |
Tn0[)p l0| 26 | UNION-ALL | | | | | |
5d2sF)Qv"{/V8H9]0|* 27 | FIXED TABLE FULL | X$KDNSSF | 1 | 102 | 0 (0)| 00:00:01 |
Iti-Bl }d0|* 28 | FIXED TABLE FULL | X$KSQEQ | 1 | 102 | 0 (0)| 00:00:01 |ITPUB个人空间7@'D kc8U2T"i
|* 29 | FIXED TABLE FULL | X$KTADM | 1 | 102 | 0 (0)| 00:00:01 |
#y;g5K3s,S.Fa0|* 30 | FIXED TABLE FULL | X$KTATRFIL | 1 | 102 | 0 (0)| 00:00:01 |ITPUB个人空间%z+kOX6upO
|* 31 | FIXED TABLE FULL | X$KTATRFSL | 1 | 102 | 0 (0)| 00:00:01 |ITPUB个人空间%o4b|*K+NGp/Z$G
|* 32 | FIXED TABLE FULL | X$KTATL | 1 | 102 | 0 (0)| 00:00:01 |
(G%E7C"nRjBtje'B0|* 33 | FIXED TABLE FULL | X$KTSTUSC | 1 | 102 | 0 (0)| 00:00:01 |
IO;msBhmd0|* 34 | FIXED TABLE FULL | X$KTSTUSS | 1 | 102 | 0 (0)| 00:00:01 |ITPUB个人空间 i Y KE5jJ
Cz
|* 35 | FIXED TABLE FULL | X$KTSTUSG | 1 | 102 | 0 (0)| 00:00:01 |
2p(fz[]3sV&Gkj0|* 36 | FIXED TABLE FULL | X$KTCXB | 1 | 102 | 0 (0)| 00:00:01 |ITPUB个人空间d
n6cN@*{1V
|* 37 | FIXED TABLE FIXED INDEX | X$KSQRS (ind:1) | 1 | 19 | 0 (0)| 00:00:01 |ITPUB个人空间9NR;OZ-T
---------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):ITPUB个人空间&E5UpkK4~6bd
---------------------------------------------------
1 - filter( EXISTS (SELECT 0 FROM SYS."X$KSQRS" "R",SYS."X$KSUSE" "S", ( (SELECT
W]q#j-~2q+C8cZ0 USERENV('INSTANCE') "INST_ID","LADDR" "LADDR","KADDR" "KADDR","SADDR" "SADDR","RADDR"ITPUB个人空间\ p%?zv2|D
"RADDR","LMODE" "LMODE","REQUEST" "REQUEST","CTIME" "CTIME","BLOCK" "BLOCK" FROM (
qP#s"|p0 (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR" "KADDR","KSQLKSES"
x%Id9|zs0 "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ" "REQUEST","KSQLKCTIM"
s0rphs&rcL\0 "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KDNSSF" "X$KDNSSF" WHERE ("KSQLKMOD"<>0 OR
2bZE3VsI N0 "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND BITAND("KSSOBFLG",1)<>0) UNION ALLITPUB个人空间3Tb1Z]s
Ol*} K
(SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR" "KADDR","KSQLKSES"
)O-g
[^dm0 "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ" "REQUEST","KSQLKCTIM"
W:n:m*@$uo4`/_0 "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KSQEQ" "X$KSQEQ" WHERE ("KSQLKMOD"<>0 ORITPUB个人空间8Je]c:py2a7[0d*D
"KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND BITAND("KSSOBFLG",1)<>0)) "GV$_LOCK1"
8~"JO-h8z2xx Y0 WHERE USERENV('INSTANCE') IS NOT NULL) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR"ITPUB个人空间2MLh
z9t8t1lj*v
H Z:jM
"LADDR","KSQLKADR" "KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD"
8zKW{WSu)h%K0 "LMODE","KSQLKREQ" "REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTADM"ITPUB个人空间
bqG$Lcicnct$Y(h
v
"X$KTADM" WHERE ("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
.B'Dm-}F&]
b0 BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"ITPUB个人空间#QCd7kL\i t'_
"KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"ITPUB个人空间h.xbV2`7?y
"REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTATRFIL" "X$KTATRFIL" WHERE
BCvEL N0 ("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
+?OML|0 BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"
6\8y g.f |v
xuD)q0 "KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"
n vEBh0 "REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTATRFSL" "X$KTATRFSL" WHEREITPUB个人空间1Or?#Ve
RYP'}'X
?u
("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间(g&K8A$Umq
BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"ITPUB个人空间C&iPd/S+\
"KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"
q;?v)H,AfT,_0 "REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTATL" "X$KTATL" WHEREITPUB个人空间JVr;~#j3v`\
("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
"H:j
|l@[C8\x0 BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"ITPUB个人空间_"v[-Am$o)WL
"KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"ITPUB个人空间9C}Sd5k,Tl.J
"REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTSTUSC" "X$KTSTUSC" WHEREITPUB个人空间#]q)Q
SU9Q
Sj
("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
0OU?vV0 BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"
%v[dow'{X0 "KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"
aa0D]Rc(A0 "REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTSTUSS" "X$KTSTUSS" WHEREITPUB个人空间o`F
h8m W%np-UG5Io
("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
|KvMd
H
d0 BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","ADDR" "LADDR","KSQLKADR"ITPUB个人空间Aq l'sg9z*Hg
"KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD" "LMODE","KSQLKREQ"ITPUB个人空间
f
T+XW:\^'pb
"REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTSTUSG" "X$KTSTUSG" WHEREITPUB个人空间 km$blV~?q2`3S
("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间/J5RdH
D
\
BITAND("KSSOBFLG",1)<>0) UNION ALL (SELECT "INST_ID" "INST_ID","KTCXBXBA"ITPUB个人空间+E+cK Qb"mx@
"LADDR","KTCXBLKP" "KADDR","KSQLKSES" "SADDR","KSQLKRES" "RADDR","KSQLKMOD"
-w/_F]
M)Itq#S4t0 "LMODE","KSQLKREQ" "REQUEST","KSQLKCTIM" "CTIME","KSQLKLBLK" "BLOCK" FROM SYS."X$KTCXB"
#D5z7TV7V2e Vw6t0 "X$KTCXB" WHERE ("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间,T0f i&w.Vw3g3Eso
BITAND("KSSPAFLG",1)<>0)) "GV$_LOCK" WHERE "SADDR"="S"."ADDR" AND "S"."KSUSENUM"=305 AND
,t"Ob6{~!P;QPgs0 "S"."INST_ID"=USERENV('INSTANCE') AND "R"."KSQRSID1"=:B1 AND "RADDR"="R"."ADDR"))ITPUB个人空间'F \ nUN1x
4 - filter(("O"."TYPE#"<>1 AND "O"."TYPE#"<>10 OR "O"."TYPE#"=1 AND (SELECT 1 FROMITPUB个人空间%xQ*l \ pq+]GO.]
"SYS"."
z5hebf4y+a0 OR "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9))=1) AND
H7xS2N_`#Ys\0 ("O"."TYPE#"<>4 AND "O"."TYPE#"<>5 AND "O"."TYPE#"<>7 AND "O"."TYPE#"<>8 AND
uiB8v%y/Qr?O8E:uG9}/r0 "O"."TYPE#"<>9 AND "O"."TYPE#"<>10 AND "O"."TYPE#"<>11 AND "O"."TYPE#"<>12 AND
1Pg-Slb"@0 "O"."TYPE#"<>13 AND "O"."TYPE#"<>14 AND "O"."TYPE#"<>22 AND "O"."TYPE#"<>87 AND
I7}z;sOjhw;_.j0 "O"."TYPE#"<>88 OR BITAND("U"."SPARE1",16)=0 OR ("O"."TYPE#"=4 OR "O"."TYPE#"=5 OR
,Y5F`kP l(i0 "O"."TYPE#"=7 OR "O"."TYPE#"=8 OR "O"."TYPE#"=9 OR "O"."TYPE#"=10 OR "O"."TYPE#"=11 OR
gX4kqq&L#VW+Z k$KY0 "O"."TYPE#"=12 OR "O"."TYPE#"=13 OR "O"."TYPE#"=14 OR "O"."TYPE#"=22 OR "O"."TYPE#"=87)
9S5b:s$]8aa*zw0 AND (SYS_CONTEXT('userenv','current_edition_name')='ORA$BASE' AND "U"."TYPE#"<>2 OR
k,P&|]XnA{0 "U"."TYPE#"=2 AND "U"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id')) OR
2ID7EIlO3B|a0 EXISTS (SELECT 0 FROM SYS."USER$" "U2",SYS."OBJ$" "O2" WHERE "O2"."OWNER#"="U2"."USER#"
vFAm/VU&yS+u0 AND "O2"."TYPE#"=88 AND "O2"."DATAOBJ#"=:B2 AND "U2"."TYPE#"=2 ANDITPUB个人空间 KW:AG.x8R
"U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id'))))))
{M-V
N2R0 5 - access("O"."SPARE3"="U"."USER#")
%b7mJ8X'M3{:@0 7 - access("O"."OWNER#"="U"."USER#")ITPUB个人空间H)l g\gS,E~
9 - filter("O"."NAME"<>'_NEXT_OBJECT' AND "O"."NAME"<>'_default_auditing_options_' ANDITPUB个人空间"@[
F5GT6a'q
"O"."LINKNAME" IS NULL AND BITAND("O"."FLAGS",128)=0)
~!@0VF7L8Gz0 10 - filter("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4 OR
gG5U3Se0 "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9)
q&g3n4cVIq4d0 11 - access("I"."OBJ#"=:B1)
g[fJImU0 13 - access("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_ediITPUB个人空间 q A7Hl.j,N+y:q'j
tion_id')))ITPUB个人空间`F'Z%Cr? Y:t#d4E"x
filter("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edi
[+F _PrN&T0 tion_id')))
\Q-J3U6n9t8s0 14 - access("O2"."DATAOBJ#"=:B1 AND "O2"."TYPE#"=88 AND "O2"."OWNER#"="U2"."USER#")ITPUB个人空间,Hj6Wt"YrgAT%|"l`S
18 - access("L"."OWNER#"="U"."USER#")ITPUB个人空间:C/g3j"?3e(@ss2y
20 - access("SADDR"="S"."ADDR")ITPUB个人空间t1IT5WQy)L|Q
21 - filter("S"."KSUSENUM"=305 AND "S"."INST_ID"=USERENV('INSTANCE'))ITPUB个人空间Im ^7{m5R
24 - filter(USERENV('INSTANCE') IS NOT NULL)
*R)OTL@{0 27 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
U6\1Z!Dop`|E~0 BITAND("KSSOBFLG",1)<>0)
^&R}"J5y
v*nu0 28 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
b'G*p4W$[0 BITAND("KSSOBFLG",1)<>0)ITPUB个人空间
gq9?-K'gnz7~
29 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间O
f
Fn/Js,K
BITAND("KSSOBFLG",1)<>0)
UdZ1uhv:ER R0 30 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
{*g_uza$W}0 BITAND("KSSOBFLG",1)<>0)
/B7q&Be6i{+PB0 31 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间a2N}.}iB,U:b+w
BITAND("KSSOBFLG",1)<>0)
@c8[#qbO/A0 32 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
+uv]+RF0 BITAND("KSSOBFLG",1)<>0)
ha lw7l0 33 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
*okFCWS^0 BITAND("KSSOBFLG",1)<>0)ITPUB个人空间/j4^t-J1D2T/?
34 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间^#[:R'Ev.t,R
BITAND("KSSOBFLG",1)<>0)
:t6_(o
TU6U(Uc"wC0 35 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') ANDITPUB个人空间]m$KK.p4?y
BITAND("KSSOBFLG",1)<>0)ITPUB个人空间1X,Q7s
QW*R
36 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND "INST_ID"=USERENV('INSTANCE') AND
dJr)tfjWDv0 BITAND("KSSPAFLG",1)<>0)ITPUB个人空间 AD-S
p g
ne
37 - filter("R"."KSQRSID1"=:B1 AND "RADDR"="R"."ADDR")
ITPUB个人空间In{Jw A
统计信息ITPUB个人空间_{1yV"sU/@-@1X!o
----------------------------------------------------------ITPUB个人空间5wh|s3wQ
15 recursive calls
B.Wk(@'pL/D{1A0 70632 db block getsITPUB个人空间 Z)T.h b P
B
982 consistent gets
Y/BSY5z6rH'u-_\0 3 physical readsITPUB个人空间Q|+gc7l"iT8A1w
0 redo sizeITPUB个人空间#SU9YHe1k @}i+fd
667 bytes sent via SQL*Net to clientITPUB个人空间5B(h,w.F!W/I
520 bytes received via SQL*Net from client
Tkw@r'C7SP0 2 SQL*Net roundtrips to/from clientITPUB个人空间,v!jN,[ FM9cW
0 sorts (memory)ITPUB个人空间WXr/UM#M
0 sorts (disk)ITPUB个人空间^;{6`a)} g
2 rows processed
感觉似乎并不是常见的Oracle将VIEW进行MERGE导致的执行计划效率低的问题,从现有的执行计划上看,两个视图并没有被MERGE。
不过从统计信息上看,就存在很大问题了,这么简单的一个查询怎么会导致了7万多的db block gets呢。
而且在这个会话的执行过程中,检查了会话的等待时间,发现也比较有意思,前后出现了gc cr request、latch free、db file sequential read等多种等待事件。
而如果改变一下SQL语句的写法,直接写成关联的方式:
SQL> SELECT OWNER, OBJECT_NAME FROM DBA_OBJECTS, V$LOCKITPUB个人空间
Kn,X(R#f$e6`a
2 WHERE OBJECT_ID = ID1ITPUB个人空间:cyRec~*X
3 AND SID = 305;
OWNER OBJECT_NAME
Vu)N5w/JL_N^0------------------------------ ------------------------------
.mQw"}}7mc0SYS ORA$BASE
R@F"s4E
vO
Q9r0TEST T_PARALLEL
已用时间: 00: 00: 00.44
执行计划ITPUB个人空间:P;crU\}p
----------------------------------------------------------
n3_0e5?
G)d|4Hp0Plan hash value: 3416262628
---------------------------------------------------------------------------------------------------ITPUB个人空间]5R4|c+Ou#Z7j6|
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
wy-OG6^^0---------------------------------------------------------------------------------------------------
8S"m'?N1u[0| 0 | SELECT STATEMENT | | 1 | 159 | 182 (5)| 00:00:03 |ITPUB个人空间zU4x~H3p
Xocg%R:|
|* 1 | HASH JOIN | | 1 | 159 | 182 (5)| 00:00:03 |ITPUB个人空间$W`3n*uX(z
| 2 | NESTED LOOPS | | 1 | 63 | 1 (100)| 00:00:01 |
&L
Vt-So O!O;LS0|* 3 | HASH JOIN | | 1 | 44 | 1 (100)| 00:00:01 |ITPUB个人空间|Zrx1s:X&SC
|* 4 | FIXED TABLE FULL | X$KSUSE | 1 | 32 | 0 (0)| 00:00:01 |ITPUB个人空间1F(ENMz2\
| 5 | VIEW | GV$_LOCK | 10 | 120 | 0 (0)| 00:00:01 |
0n'M9CjKD:E2A0| 6 | UNION-ALL | | | | | |
lR0x$Ai0|* 7 | FILTER | | | | | |