一个经常碰到的bug,访问DBA_JOBS_RUNNING视图长时间得不到结果。
在10.2以前的版本,查询DBA_JOBS_RUNNING视图经常会发生等待:
SQL> SET TIMING ON
SQL> SELECT * FROM DBA_JOBS_RUNNING;
no rows selected
Elapsed: 00:00:28.57
上面这个查询中虽然一条记录都没有查询到,但是仍然用了将近30秒,而如果采用RBO的方式,则1秒之内就可以得到查询的结果:
SQL> SELECT /*+ RULE */ * FROM DBA_JOBS_RUNNING;
no rows selected
Elapsed: 00:00:00.04
Oracle在Bug No. 3402490中描述了这个bug,这个bug会影响9.2和10.1版本,在10.2中这个bug被fixed。
SQL> SET TIMING ON
SQL> SELECT * FROM DBA_JOBS_RUNNING;
未选定行
已用时间: 00: 00: 00.05
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
已用时间: 00: 00: 00.03
出处: http://yangtingkun.itpub.net/post/468/458549
阅读(1949) | 评论(0) | 转发(0) |