ロックを保持しているプロセスと、どのテーブルで、どのくらいの期間ロックがすでに保持されているかとともに、テーブルに保持されているロックを見つけるにはどうすればよいですか?
1475 次
1 に答える
1
このクエリはテストされていませんが、これで望ましい結果が得られると思います。
select session_id "sid",SERIAL# "Serial",
substr(object_name,1,20) "Object",
substr(os_user_name,1,10) "Terminal",
substr(oracle_username,1,10) "Locker",
nvl(lockwait,'active') "Wait",
decode(locked_mode,
2, 'row share',
3, 'row exclusive',
4, 'share',
5, 'share row exclusive',
6, 'exclusive', 'unknown') "Lockmode",
OBJECT_TYPE "Type"
,ctime "locked_time"
FROM
SYS.V_$LOCKED_OBJECT A,
SYS.ALL_OBJECTS B,
SYS.V_$SESSION c,
V$LOCK d
WHERE
A.OBJECT_ID = B.OBJECT_ID AND
C.SID = A.SESSION_ID
AND d.sid =A.session_id
ORDER BY 1 ASC, 5 Desc
/
( locked_mode ) が許可されctime
てからの時間です。current mode
以下のリファレンスでこのクエリを見つけました:
スクリプト
于 2012-06-16T06:12:55.347 に答える