|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
在erp中我们常常会遇到表锁定的问题,那么我们如何去查那些表被锁定了呢?一下是fifali提供的一个查找解锁表的SQL语句,在执行该SQL后你可以杀掉该表对应的DB_PID
进程。
杀进程的语句为:
alter system kill session 'session_id,serial#';
一下是SQL- SELECT dob.OBJECT_NAME Table_Name,
- lo.LOCKED_MODE,
- lo.SESSION_ID,
- vss.SERIAL#,
- vps.spid,
- vss.action Action,
- vss.osuser OSUSER,
- vss.process AP_PID,
- VPS.SPID DB_PID,
- 'alter system kill session ' || '''' || lo.SESSION_ID || ',' ||vss.SERIAL# || ''';' kill_command
- from v$locked_object lo, dba_objects dob, v$session vss, V$PROCESS VPS
- where lo.OBJECT_ID = dob.OBJECT_ID
- and lo.SESSION_ID = vss.SID
- AND VSS.paddr = VPS.addr
- order by 2, 3, DOB.object_name;
复制代码 这是查找被锁包的SQL- select B.SID,
- b.USERNAME,
- b.MACHINE,
- a.OBJECT,
- 'alter system kill session ' || '''' || b.SID || ',' || b.SERIAL# ||
- ''';' kill_command
- FROM V$ACCESS A, V$SESSION B
- WHERE A.SID = B.SID
- and upper(a.OBJECT) like '%CUX%'
- and a.TYPE = 'PACKAGE'
复制代码 |
|