|
原帖由 fusnow 于 2007-12-15 14:30 发表 ![]()
俺一般都是用OEM,省事啊。
By trace OEM,I got this
for 10G
[php]
SELECT EXECORD EXEC_ORDER, PLANLINE
FROM (SELECT PLANLINE, ROWNUM EXECORD, ID, RID
FROM (SELECT PLANLINE, ID, RID, LEV
FROM (SELECT lpad(' ', 2 * (LEVEL), rpad(' ', 80, ' ')) ||
OPERATION || ' ' || -- Operation
DECODE(OPTIONS,
NULL,
'',
'(' || OPTIONS || ') ') || -- Options
DECODE(OBJECT_OWNER,
null,
'',
'OF ''' || OBJECT_OWNER || '.') || -- Owner
DECODE(OBJECT_NAME,
null,
'',
OBJECT_NAME || ''' ') || -- Object Name
DECODE(OBJECT_TYPE,
null,
'',
'(' || OBJECT_TYPE || ') ') || -- Object Type
DECODE(ID, 0, 'OPT_MODE:') || -- Optimizer
DECODE(OPTIMIZER,
null,
'',
'ANALYZED',
'',
OPTIMIZER) ||
DECODE(NVL(COST, 0) + NVL(CARDINALITY, 0) +
NVL(BYTES, 0),
0,
null,
' (COST=' || TO_CHAR(COST) || ',CARD=' ||
TO_CHAR(CARDINALITY) || ',BYTES=' ||
TO_CHAR(BYTES) || ')') PLANLINE,
ID,
LEVEL LEV,
(SELECT MAX(ID)
FROM v$sql_plan PL2
CONNECT BY PRIOR ID = PARENT_ID
AND PRIOR sql_id = sql_id
START WITH ID = PL1.ID
AND sql_id = PL1.sql_id) RID
FROM v$sql_plan PL1
CONNECT BY PRIOR ID = PARENT_ID
AND PRIOR sql_id = sql_id
START WITH ID = 0
AND PL1.SQL_ID = '&sqlid')
ORDER BY RID, -LEV))
ORDER BY ID
--------
[/php]
[ 本帖最后由 anlinew 于 2007-12-16 18:47 编辑 ] |
|