可以做个小程序监控v$locked_object视图

解决方案 »

  1.   

    每隔一段时间查v$lock,对比每次从v$lock中取出的内容。
    避免被锁,只能小心小心再小心。
      

  2.   

    我UP—————————————————————————————————
             ____()()
            /      @@
      `~~~~~\_;m__m._>o     -------大米在哪里?大米在哪里??
      

  3.   

    developer2002(开发者2002) 您好:
        读取v$locked_object视图的操作很慢;您认为这样话大概
    需要多少时间延时一次?    其他人还有更好的建议吗?如现成的工具等等
      

  4.   

    通过v$lock 和 v$locked_object 查出 session 和 object;
    用alter system kill session idyoufind;
      

  5.   

    如果仅仅是lock,以下语句可以发现所有用户锁
    select s.username,
    decode(l.type,'TM','TABLE LOCK',
                  'TX','ROW LOCK',
                  NULL) LOCK_LEVEL,
    o.owner,o.object_name,o.object_type,s.terminal,s.machine,s.program,s.osuser
    from v$session s,v$lock l,dba_objects o
    where s.sid=l.sid
    and o.object_id=l.id1
    and s.username is not null如果有锁等待或死锁,可以通过以下语句发现
    select lpad(' ',decode(l.xidusn,0,3,0))||l.oracle_username User_name,
           o.owner,o.object_name,o.object_type
    from v$locked_object l,dba_objects o
    where l.object_id=o.object_id
    order by o.object_id desc
      

  6.   

    速度不是问题,以上查询的速度还是很快的。
    你可以把以上语句写成模板来执行。
    关键问题是要随时检测到锁,特别是锁等待,及时提交或kill session.
    如果是工具的话,我记得有一个缩监视器,不知道是8i的还是9i的
    但是我建议,还是自己用语句查询来的快,工具只会更慢,不会更快。
      

  7.   

    如果我用VC或PB之类的写个小程序来定时监测Lock;
    从性能、速度上来说,会不会很慢