oralce 解除锁定的表
16lz
2021-01-22
用户锁,数据库的锁有的时候是比较耗费资源的,特别是发生锁等待的时候,我们必须找到发生等待的锁,有可能的话,杀掉该进程。
这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
第一:通过如下语句获取锁定表的sid,serial#
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
第二:在sqlplus下可以通过语句alter system kill session ‘sid,serial#’来杀掉会话
SQL> alter system kill session ‘127,31478’ immediate;
更多相关文章
- 求SQL语句,有没有周末上班的高手,给帮个忙吧!
- 求一条sql语句:计算两列的差值,以及各个差值占差值总和的比例
- 我应该如何选择一列与另一列相关的语句?
- 条件复杂的sql语句查询
- Sql Server系列:Insert语句
- SQL Server中存储过程比直接运行SQL语句慢的原因
- Mysql order by语句未使用索引的思考
- SQL语句练习(1)
- 存款日均额计算的SQL语句如何书写