本帖最后由 helloor 于 2013-06-18 09:07:50 编辑

解决方案 »

  1.   

    为啥木有人理我呀。
    也有可能是我引起的锁表,但我应该不是锁住tb_aaa表的
      

  2.   

    有点乱,没看太明白。
    聊天记录的第一段是说有表被锁了,至于时间应该看不出来。第二段是在查被锁的表,和锁表的进程。单纯这么看的话,可以认为是YYITSME用户引起锁表,PL/SQL Developer。
      

  3.   

    简单分析下为啥吧?enq: TX - row lock contention 说明表被锁了, 690386d37tbf3 是sql_id,根据这个查出来的sql语句是INSERT INTO TB_DATA(AAA) SELECT AAA FROM TB_BA_ACTATTR WHERE DI = :1。最后一块所得是一个状态,YYITSME  2013-06-16 18:20:00 通过plsqldev.exe登陆进来,机器名称:WORKGROUP\GDERP19,LAST_CALL_ET STATUS   INACTIVE
     
      

  4.   

    有点乱、没看明白、LZ用下面的脚本看一下、是否确实存在锁表以及是哪条sql导致:SELECT a.sid ||
             decode(request,
                    0,
                    ' :holder',' :Waiter') sess_id,blocking_session blocker,
             lmode,
             request,
             a.type,
             c.object_name,
             decode(row_wait_obj#,
                    -1,
                    'Holder of Lock !!!',
                    dbms_rowid.rowid_create(1,
                                            row_wait_obj#,
                                            row_wait_file#,
                                            row_wait_block#,
                                            row_wait_row#)) row_id,
             nvl(SQL_FULLTEXT, 'Holder of Lock !!!') sqltext
     FROM V$LOCK A, V$LOCKED_OBJECT B, ALL_OBJECTS C, V$SESSION D, V$SQL E
    WHERE (id1, id2, a.type) in
             (select id1, id2, type from v$lock where request > 0)
         AND a.sid = b.session_id
         AND b.object_id = c.object_id
         AND d.sid = a.sid
         AND d.sql_hash_value = e.hash_value(+)