Tom 的 Expert one on one 的一个Bug


作者:Fenng
出处:http://www.dbanotes.net
日期:April 23, 2005

« ORA-02248 | Blog首页 | V$Session_LONGOPS »


Tom 的 Expert one on one: Oracle 的一个Bug. 第三章讲到DML所的时候 Tom 用了一个脚本:

tkyte@TKYTE816> select username,
  2         v$lock.sid,
  3         trunc(id1/power(2,16)) rbs,
  4         bitand(id1,to_number('ffff','xxxx'))+0 slot,
  5         id2 seq,
  6         lmode,
  7         request
  8  from v$lock, v$session
  9  where v$lock.type = 'TX'
 10    and v$lock.sid = v$session.sid
 11    and v$session.username = USER
 12  /
    
USERNAME        SID        RBS       SLOT        SEQ      LMODE    REQUEST
-------- ---------- ---------- ---------- ---------- ---------- ----------
TKYTE             8          2         46        160          6          0

产品库上最好别直接用这个脚本,很慢很慢的.

解决的办法是加上一个Hint:

SELECT /*+ rule */ username, v$lock.SID, TRUNC (id1 / POWER (2, 16)) rbs,
       BITAND (id1, TO_NUMBER ('ffff', 'xxxx')) + 0 slot, id2 seq, lmode,
       request
  FROM v$lock, v$session
 WHERE v$lock.TYPE = 'TX'
   AND v$lock.SID = v$session.SID
   AND v$session.username = USER
/

Posted by Fenng at April 23, 2005 01:16 AM
Last updated at 06:18 PM on August 20, 2005


相关文章

Trackback Pings

TrackBack URL for this entry:
http://www.dbanotes.net/mt/mt-tb.cgi/171

Listed below are links to weblogs that reference Tom 的 Expert one on one 的一个Bug:

» hole from hole
hole [Read More]

Tracked on April 8, 2006 09:49 PM

Comments


需要看optimzer_mode参数的设置了:)

Posted by: jametong at April 23, 2005 03:27 PM

考虑不周就是Bug了阿

Posted by: Fenng at April 25, 2005 10:52 AM

fenng这次有点过于严以律人了。

tom的例子是帮助我们理解技术的,不是给dba做管理脚本用的。

另外像这种join多个v$表的情况,在不同版本的数据库上可能有不同的性能表现。像你那样加上hint,可能在其它版本中未必好。

总不能让他在书中写这段脚本的时候这样写吧?- 在8.1.x下用select /*+ hint1 */....., 在9.0.x下...., 在9.2.x下.....
:)


btw: tom好像不提倡在产品应用中使用hint。


Posted by: oldwain at April 25, 2005 05:19 PM

Post a comment



Hint: 为避免您收到垃圾邮件,请尽量不用使用真实的邮件地址.


Remember Me?