码迷,mamicode.com
首页 > 数据库 > 详细

关于数据库锁表以及解除方式

时间:2019-06-27 21:49:35      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:name   oracle数据库   from   for   session   create   情况   creat   sele   

关于数据库锁表以及解除方式

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#.

关于数据库锁表以及解除方式

标签:name   oracle数据库   from   for   session   create   情况   creat   sele   

原文地址:https://www.cnblogs.com/TSHHAOLIHAI/p/11099776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!