關於數據庫鎖表以及解除方式


關於數據庫鎖表以及解除方式

1.什么情況下會被鎖表

1.1任何DML語句都會對表加鎖。

DML語句,即數據操縱語言(Data Manipulation Language,DML),以INSERT,UPDATE,DELET三種指令為核心。
DDL語句,數據定義語言(Data Definition Language,DDL),常用的語句關鍵字主要包括CREATE,DROP,ALTER。注意:DDL的操作是隱形提交的,不能進行roolback

1.2oracle數據庫中,for update語句

2.如何解除表被鎖

2.1鎖表查詢代碼

select * from v$locked_object;

2.2查看那個表被鎖

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

2.3查看是哪個session引起的

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

2.4查看是哪個sql引起的

select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sidand b.SQL_ID = c.sql_id order by b.logon_time;

2.5殺掉對應進程

執行命令:alter system kill session '1025,41';
其中1025為sid,41為serial#.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM