PLSQL查询表是否被锁定(转)

PLSQL查询表是否被锁定(转)

http://blog.sina.com.cn/s/blog_70717ff00100qb85.html

(2011-05-08 13:13:06)

转载▼

标签:

杂谈

分类: SQL的种种

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;

--查死锁--

select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode

from v$locked_object lo,dba_objects ao,v$session sess

where ao.object_id = lo.object_id

and lo.session_id = sess.sid

--查死锁--

Select decode(request, 0, ‘holder:‘, ‘waiter:‘) || sid sid,id1,id2,lmode,request,type,ctime/60 锁定时间

from v$lock where (id1, id2, type) in

(select id1, id2, type from v$lock where request > 0) order by id1, request;

--根据sid获取进程详情--

SELECT a.username,a.machine,a.program,b.spid,a.sid,a.serial#,a.status,c.piece,c.sql_text

FROM v$session a, v$process b, v$sqltext c

WHERE a.sid = ‘749‘

AND b.addr = a.paddr

AND a.sql_address = c.address(+)

ORDER BY c.piece;

-- add 2012-09-14

-- 数据表死锁的解决方法(转)

死锁是数据库经常发生的问题,数据库一般不会无缘无故产生死锁,死锁通常都是由于我们应用程序的设计本身造成的。产生死锁时,如何解决呢,下面是常规的解决办法:

1)执行下面SQL,先查看哪些表被锁住了: 
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)查处引起死锁的会话
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;
这里会列出SID

3) 查出SID和SERIAL#: 
查V$SESSION视图: 
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=‘刚才查到的SID‘; 
这一步将得到PADDR

4)查V$PROCESS视图: 
SELECT SPID FROM V$PROCESS WHERE ADDR=‘刚才查到的PADDR‘; 
这一步得到SPID

5)杀死进程 
(1)在数据库中,杀掉ORACLE进程: 
ALTER SYSTEM KILL SESSION ‘查出的SID,查出的SERIAL#‘;

(2)如果在ORACLE中不能杀死进程,我们只能到操作系统中,使用操作系统命令杀死进程 
KILL -9  “刚才查出的SPID”
在WINDOWS平台,可以是偶那个orakill。

时间: 2024-08-27 15:38:04

PLSQL查询表是否被锁定(转)的相关文章

atitit查询表修改表字段没反应--解锁锁定的表

查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweixin  MODIFY  awardChoiceNumLeft int(11) DEFAULT NULL #-----分析.. 1.首先,查询by另一个表格,  要是能查询,显示不是max conn的问题..也许表格锁定了.. 2. show full PROCESSLIST  要是看到个Waiting for table metadata lock

PLSQL 中锁定Window List窗口办法

<1> Tools-Preferences-User Interface-Options,在窗口中选中“Autosave Desktop”,   然后拖拽Window List到目标位置上,下次启动PLSQL Developer,就可以看到锁定效果  了. <2>  要保存当前一些窗口的模式,在你调整好窗口布局后,选择菜单Window->Save Layout 就可以了 <3> 保存密码: tools->Preferences->Oracle->

plsql触发器

11 数据库的触发器trigger 定义:根据发生的事件而执行的一种存储子程序 数据库事件:DML事件.DDL事件.用户事件.系统事件触发器分类:DML触发器.DDL触发器.系统用户事件触发器 11.1 触发器的创建 (1) DML触发器 A insert事件 create or replace trigger ai_org_trig   before insert on org_tab  for each rowbegin   update sec_hrc_audit set num_rows

转载:PLSQL Developer使用技巧整理

Shortcut:=====================================================================Edit/Undo     Ctrl+ZEdit/Redo     Shift+Ctrl+ZEdit/PL/SQL Beautifier  Ctrl+W   (自定义) Shift+Home  选择光标位置到行首       Shift+End  选择光标位置到行尾       Ctrl+Shift+Home 选择光标位置到首行行首     

浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题

原文:浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题 本文出处:http://www.cnblogs.com/wy123/p/7501261.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 数据库在处理并发事物的过程中,在不同的隔离级别下有不同的锁表现,在非可序列化隔离级别下,存在着脏读,不可重复读,丢失更新,幻读等情况.本文不讨论脏读和不可重复读以及丢失更新的情形,仅讨论幻读,幻

oracle Plsql 运行update或者delete时卡死问题解决的方法

oracle Plsql 运行update或者delete时 遇到过Plsql卡死问题或者导致代码运行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本身拼写无误,可是出现plsql卡死的情况, 在代码中,运行sql的地方打断点debug,发现运行sql,仍然没有响应.经过网上查资料,推測导致这样的情况的原因是 可能在PLSQL Developer运行update时没有commit,oracle将该条记录锁住了. 能够通过下面办法解决: 先查询锁定

PLSQL性能优化技巧

1.理解执行计划1-1.什么是执行计划 oracle数据库在执行sql语句时,oracle的优化器会根据一定的规则确定sql语句的执行路径,以确保sql语句能以最优性能执行.在oracle数据库系统中为了执行sql语句,oracle可能需要实现多个步骤,这些步骤中的每一步可能是从数据库中物理检索数据行,或者用某种方法准备数据行,让编写sql语句的用户使用,oracle用来执行语句的这些步骤的组合被称为执行计划. 当执行一个sql语句时oracle经过了4个步骤: ①.解析sql语句:主要在共享池

PLSQL DEVELOPER 使用的一些技巧【转】 .

1,登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的. Tools菜单 --> Object Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可. Tools菜单--> Object Brower Folders,中

PLSQL Developer使用技巧整理

Shortcut:===============================================================================Edit/Undo     Ctrl+ZEdit/Redo     Shift+Ctrl+ZEdit/PL/SQL Beautifier  Ctrl+W   (自定义) Shift+Home  选择光标位置到行首       Shift+End  选择光标位置到行尾       Ctrl+Shift+Home 选择光标位置