已知有数个session访问同一张表,而表却被某一个session 锁定,其余的session都在等待中。
我想找到那个session 杀之,却不知如何确定是哪个。
根据访问该表的时间来判断是不科学的。
请问高手有什么好办法?

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1584/1584835.xml?temp=.9045679
      

  2.   

    select * from v$Locked_objects
      

  3.   

    SELECT A.OWNER,   
             A.OBJECT_NAME,   
             B.XIDUSN,   
             B.XIDSLOT,   
             B.XIDSQN,   
             B.SESSION_ID,   
             B.ORACLE_USERNAME,   
             B.OS_USER_NAME,   
             B.PROCESS,   
             B.LOCKED_MODE,   
             C.MACHINE,   
             C.STATUS,   
             C.SERVER,   
             C.SID,   
             C.SERIAL#,   
             C.PROGRAM  
        FROM ALL_OBJECTS A,   
             V$LOCKED_OBJECT B,   
             SYS.GV_$SESSION C 
       WHERE ( A.OBJECT_ID = B.OBJECT_ID ) 
         AND (B.PROCESS = C.PROCESS )
       --  AND  
       ORDER BY 1,2     ;