ITPub博客

首页 > 数据库 > Oracle > exp 超慢的解决

exp 超慢的解决

原创 Oracle 作者:jidongzheng 时间:2009-06-22 13:43:58 0 删除 编辑

导出数据,慢的不行了.一个表,10条记录,花了2分钟.系统cpu也N高.

对导出进行进行sql trace

exec dbms_system.set_sql_trace_in_session(9,12,true);

出现在N多的nest loop.而且,执行效率好慢.

[@more@]

SELECT COLNAME, COLNO, PROPERTY
FROM
SYS.EXU9CCLU WHERE CNO = :1 ORDER BY COLNO


call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.05 0 24 0 0
Execute 1 0.00 0.15 0 3 0 0
Fetch 2 0.00 5.87 367 453652 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 6.07 367 453679 0 1

Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user id: 135

Rows Row Source Operation
------- ---------------------------------------------------
1 SORT ORDER BY
1 VIEW
1 SORT UNIQUE
1 UNION-ALL
1 NESTED LOOPS ANTI
1 NESTED LOOPS
1 NESTED LOOPS
1 NESTED LOOPS
93701 NESTED LOOPS OUTER
93701 TABLE ACCESS FULL COL$
1219 TABLE ACCESS CLUSTER ATTRCOL$
1 TABLE ACCESS CLUSTER CCOL$
61122 INDEX UNIQUE SCAN I_COBJ# (object id 30)
1 TABLE ACCESS BY INDEX ROWID OBJ$
1 INDEX UNIQUE SCAN I_OBJ1 (object id 36)
1 TABLE ACCESS CLUSTER USER$
1 INDEX UNIQUE SCAN I_USER# (object id 11)
0 TABLE ACCESS FULL NOEXP$
0 NESTED LOOPS ANTI
0 NESTED LOOPS
0 NESTED LOOPS
0 NESTED LOOPS OUTER
0 NESTED LOOPS
0 NESTED LOOPS
1 TABLE ACCESS BY INDEX ROWID CCOL$
1 INDEX RANGE SCAN I_CCOL1 (object id 54)
0 TABLE ACCESS BY INDEX ROWID COL$
1 INDEX UNIQUE SCAN I_COL3 (object id 47)
0 TABLE ACCESS BY INDEX ROWID COL$
0 INDEX UNIQUE SCAN I_COL3 (object id 47)
0 TABLE ACCESS CLUSTER ATTRCOL$
0 TABLE ACCESS BY INDEX ROWID OBJ$
0 INDEX UNIQUE SCAN I_OBJ1 (object id 36)
0 TABLE ACCESS CLUSTER USER$
0 INDEX UNIQUE SCAN I_USER# (object id 11)
0 TABLE ACCESS FULL NOEXP$
0 NESTED LOOPS ANTI
0 NESTED LOOPS
0 NESTED LOOPS OUTER
0 NESTED LOOPS
0 NESTED LOOPS
0 NESTED LOOPS
0 NESTED LOOPS
1 TABLE ACCESS BY INDEX ROWID CCOL$
1 INDEX RANGE SCAN I_CCOL1 (object id 54)
0 TABLE ACCESS BY INDEX ROWID COL$
1 INDEX UNIQUE SCAN I_COL3 (object id 47)
0 TABLE ACCESS BY INDEX ROWID OBJ$
0 INDEX UNIQUE SCAN I_OBJ1 (object id 36)
0 TABLE ACCESS CLUSTER USER$
0 INDEX UNIQUE SCAN I_USER# (object id 11)
0 TABLE ACCESS CLUSTER COL$
0 INDEX UNIQUE SCAN I_OBJ# (object id 3)
0 TABLE ACCESS CLUSTER ATTRCOL$
0 TABLE ACCESS BY INDEX ROWID COLTYPE$
0 INDEX UNIQUE SCAN I_COLTYPE2 (object id 285)
0 TABLE ACCESS FULL NOEXP$

********************************************************************************

SELECT IOBJID, IDOBJID, INAME, IOWNER, IOWNERID, ISPACE, ITSNO, IFILENO,
IBLOCKNO, BTNAME, BTOWNER, PROPERTY, CLUSTER$, PCTFREE$,
INITRANS, MAXTRANS, BLEVEL, TYPE, DEFLOG, TSDEFLOG, DEGREE,
INSTANCES, ROWCNT, LEAFCNT, DISTKEY, LBLKKEY, DBLKKEY, CLUFAC,
PRECCNT, IFLAGS
FROM
SYS.EXU9IND WHERE IOBJID= :1


call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.09 0 6 0 0
Execute 1 0.00 0.03 0 0 0 0
Fetch 2 0.00 0.00 3 34 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.12 3 40 0 1

这肯定是由于修改了某些数据库参数,导致系统执行sql,出现了错误的执行计划.

仔细回想了下,最近为了测试hash_join的性能,把.

has_join_enable 设置成false,是导致这些问题的主要原因.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/197458/viewspace-1023383/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    152
  • 访问量
    724084