查詢有多少JOB正在執行,程式被hang住

empo007發表於2007-02-09
我在執行select count(*) from dba_jobs_running;時好久不能得到結果[@more@]

我在執行select count(*) from dba_jobs_running;時好久不能得到結果,
可以知道我的當前SID=251,於是另開一SESSION,提交命令
SQL> select event,p1text,p1,p2text,p2 from v$session_wait
2 where sid=251;
得到結果:
EVENT P1TEXT P1 P2TEXT P2
------------------ -------------- ---------- ---------- ----------


buffer busy waits file# 2 block# 9

於是繼續執行
SQL> select file_name,tablespace_name from dba_data_files
2 where file_id=2
3 /
得到結果
FILE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
/dev/vg_db_jssys1_1/rrbs4G07 UNDOTBS
可見一直在等待UNDO塊.
--------------------

ITPUB上的朋友給的資料

Subject: Query on DBA_JOBS_RUNNING is Slow in Oracle 9.2
Doc ID: Note:240058.1 Type: PROBLEM
Last Revision Date: 05-MAY-2004 Status: PUBLISHED



fact: Oracle Server - Enterprise Edition 9.2
symptom: Query on DBA_JOBS_RUNNING is slow
cause: This problem is described in the Bug 2624130 - QUERY AGAINST
DBA_JOBS_RUNNING IS USING CBO EVEN WHEN NO STATISITICS



fix:

Workaround:

Use /*+ rule */ hint.
I.e: select /*+ rule */ * from dba_jobs_running;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/85922/viewspace-898849/,如需轉載,請註明出處,否則將追究法律責任。

相關文章