liguofeng29’s blog

個人勉強用ブログだっす。

Oracle - ロック調査

 --  ロックをかけているセッションID、ユーザー名、プログラム名、ロックしている時間を取得

SELECT a.SID sid,
       a.SERIAL# serialno,
       a.USERNAME username,
       a.MACHINE machine,
       b.TYPE type,
       a.PROGRAM program,
       TO_CHAR(b.CTIME/60,'999990.9') lock_time,
       c.SQL_TEXT SQL
FROM V$SESSION a,
     V$LOCK b,
     V$SQLAREA c
WHERE a.SID = b.SID
  AND b.TYPE IN ('TX','TM')
  AND a.SQL_ADDRESS = c. ADDRESS;

-- セッションを切る(DBA権限が必要)
alter system kill session 'SID,SERIAL#';

-- セッション数、プロセス数確認
-- セッション数はプロセス数 * .1.1
select count(*) from v$process;
select count(*) from v$session;