oracle数据库锁表

在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的sql:

Select O.OWNER,
O.OBJECT_NAME,
O.OBJECT_TYPE,
(SELECT C.MACHINE FROM V$SESSION C WHERE C.SID = S.SID),
(SELECT C.PROGRAM FROM V$SESSION C WHERE C.SID = S.SID),
S.SID,
S.SERIAL#,
‘alter system kill session ‘‘‘ || S.SID || ‘,‘ || S.SERIAL# || ‘‘‘;‘ Kill_Sql
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S
WHERE L.OBJECT_ID = O.OBJECT_ID
AND L.SESSION_ID = S.SID
ORDER BY O.OBJECT_ID, XIDUSN DESC;

如果某个数据库被锁定了,下面是解锁sql:

alter user oraikes account unlock;

原文地址:https://www.cnblogs.com/dongyaotou/p/11460792.html

时间: 2024-07-29 04:00:31

oracle数据库锁表的相关文章

Oracle数据库锁表查询以及解锁进程

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容. 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁 1.select b.owner,b.object_name,a.session_id,a.locked_mode 2. from v$locked_object a,dba

Oracle数据库锁表查询

--查看数据库最大连接数 select value from v$parameter where name = 'processes'; --更改数据库连接数 alter system set processes = 3000 scope = spfile; --查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id

Oracle数据库锁表的查询方法以及解锁的方法

1,锁表语句简单查询方法   select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time 2,对于上面查询的结果来解锁,如下所示 alter system kill session '382,1125'   3,锁表详细信息查询   select dba_objects.object

Oracle的锁表与解锁

Oracle的锁表与解锁 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

Oracle数据库创建表空间

--Oracle数据库创建表空间 create tablespace new_taspace --表空间名 DATAFILE 'D:\NEWTABLESPACE.DBF'   --表空间关联的数据文件和位置 size 200M --文件初始大小 autoextend on next 20MB MAXSIZE 400MB; --文件大小可自动扩展,每次扩展20MB,最大400MB --创建表空间 create tablespace new_taspace1 --表空间关联的数据文件和位置 DATA

Oracle 数据库整理表碎片

Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎片.删除操作释放的空间不会被插入操作立即重用,甚至永远也不会被重用. 怎样确定是否有表碎片 -- 收集表统计信息 SQL> exec dbms_stats.gather_table_stats(ownname=>'SCHEMA_NAME',tabname=> 'TABLE_NAME'); -

C#获取oracle数据库某表的列名和数据类型【转载】

C#获取oracle数据库某表的列名和数据类型的sql语句为: select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名] 关于此sql语句的说明: column_name:某表列名(varchar2(30)); data_type:某表列的数据类型(varchar2(106)); data_length:某表列的长度(number)

oracle查锁表SQL

SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, l.os_user_name,s.machine, s.terminal,a.sql_text, a.action FROM v$sqlarea a,v$session s, v$locked_object l WHERE l.session_id = s.sid AND s.prev_sql_addr = a.address ORDER

oracle 查看锁表情况与解表

oracle 查看锁表情况与解表 CreateTime--2018年4月27日17:24:37 Author:Marydon 1.锁表查询 --锁表查询 SELECT OBJECT_NAME AS TABLE_NAME, MACHINE, S.SID, S.SERIAL# FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S WHERE L.OBJECT_ID = O.OBJECT_ID AND L.SESSION_ID = S.SID; 2.