Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1356511
  • 博文数量: 416
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 4258
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-23 22:13
文章分类

全部博文(416)

文章存档

2015年(7)

2014年(42)

2013年(35)

2012年(14)

2011年(17)

2010年(10)

2009年(18)

2008年(127)

2007年(72)

2006年(23)

2005年(51)

分类: Oracle

2013-12-24 15:26:33

一个经常碰到的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) |
给主人留下些什么吧!~~