/*
模拟产生的死锁
然后通过V$LOCKED_OBJECT视图来产看当前的死锁信息
*/
SELECT
XIDUSN,
--NUMBER 回滚段号
XIDSLOT,
--NUMBER 槽号
XIDSQN
--NUMBER 序列号
OBJECT_ID,
--NUMBER 被锁定的数据库对象的编号
SESSION_ID,
--NUMBER 持有锁的会话编号
ORACLE_USERNAME,
--VARCHAR2(30) ORACLE用户名
OS_USER_NAME,
--VARCHAR2(30) 操作系统用户名
PROCESS,
--VARCHAR2(12) 操作系统进程编号
LOCKED_MODE
--NUMBER 锁模式
FROM V$LOCKED_OBJECT;
/*
可以将V$LOCKED_OBJECT试图与V$SESSION试图、V$SQLTEXT视图执行连接查询,查看锁对象的基本信息、会话信息和SQL语句信息等,代码如下:
*/
/*
查锁和杀锁,使用
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
*/
SELECT T2.USERNAME,
T2.SID,
T2.SERIAL#,
T2.LOGON_TIME,
T3.SQL_TEXT
FROM V$LOCKED_OBJECT T1,V$SESSION T2,V$SQLTEXT T3
WHERE T1.SESSION_ID=T2.SID AND T2.SQL_ADDRESS=T3.ADDRESS
ORDER BY T2.LOGON_TIME;