- 浏览: 142414 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
yizishou:
很详细,不错
Oracle 索引的五种类型 -
xinyoulinglei:
学习了 不错的文章 要是里面在有一些案例的说明就更好了
oracle,Cannot SET AUTOTRACE解决问题 -
xiaolobster:
我想问一下 上面这个函数,如果字符串超长了如何调整?拼成的字 ...
拼字符串 将多行拼成一行 -
DataBird:
非常感谢你无私的奉献,这个函数太棒了!!!
拿来可以直接用。
...
拼字符串 将多行拼成一行
如果怀疑表被锁了,或者事务未被正常关闭,在Oracle数据库中我们可以通过以下语句进行查询获取相关信息: Sql代码 select t2.username, t2.sid, t2.serial#, t3.object_name, t2.OSUSER, t2.MACHINE, t2.PROGRAM, t2.LOGON_TIME, t2.COMMAND, t2.LOCKWAIT, t2.SADDR, t2.PADDR, t2.TADDR, t2.SQL_ADDRESS, t1.LOCKED_MODE from v$locked_object t1, v$session t2, dba_objects t3 where t1.session_id = t2.sid and t1.object_id = t3.object_id order by t2.logon_time; 大家发现,上面这条SQL语句用到了Oracle的两个视图和一个表,分别是v$locked_object、v$session、dba_objects: v$locked_object 视图中记录了所有session中的所有被锁定的对象信息。 v$session 视图记录了所有session的相关信息。 dba_objects 为oracle用户对象及系统对象的集合,通过关联这张表能够获取被锁定对象的详细信息。 v$locked_object中的LOCKED_MODE字段表示锁的模式,oracle中锁的模式有如下几种: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4:Share 共享锁(S):阻止其他DML操作,share 5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive 6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多。 1级锁有:Select,有时会在v$locked_object出现。 2级锁有:Select for update,Lock For Update,Lock Row Share select for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select for update操作。 3级锁有:Insert, Update, Delete, Lock Row Exclusive 没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。 4级锁有:Create Index, Lock Share locked_mode为2,3,4不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054错误。 00054, 00000, "resource busy and acquire with NOWAIT specified" // *Cause: Resource interested is busy. // *Action: Retry if necessary. 5级锁有:Lock Share Row Exclusive 具体来讲有主外键约束时update / delete ... ; 可能会产生4,5的锁。 6级锁有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive 附上几条简单的oracle系统查询语句: --查某session 正在执行的sql语句,从而可以快速定位到哪些操作或者代码导致事务一直进行没有结束等. SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value), DECODE(sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.sid = '233') /* 此处233 为SID*/ ORDER BY piece ASC; --查进程. select * from v$process ; --查缩 select * from v$lock; --查缩定的对象 select * from v$locked_object --查事务 select * from v$transaction --查session select v.* from v$session v where machine='xxx' and username='xxx' and status='INACTIVE' order by last_call_et desc --查dba_objects对象 select * from dba_objects where object_id = '14977' --查缩定的表 select t2.username,t2.sid,t2.serial#,t3.object_name,t2.OSUSER,t2.MACHINE,t2.PROGRAM,t2.COMMAND,t2.LAST_CALL_ET from v$locked_object t1,v$session t2 ,dba_objects t3 where t1.session_id=t2.sid and t1.object_id = t3.object_id order by t2.logon_time;
发表评论
-
联机事务处理(OLTP)和联机分析处理(OLAP)的不同
2012-02-28 15:07 1246联机事务处理(OLTP)和联机分析处理(OLAP) ... -
SQL Server 和 Oracle 数据类型对应关系
2012-02-02 08:40 1029SQL Server 和 Oracle 数据类型对应 ... -
SQL的硬解析和软解析
2011-12-13 08:57 1271我们都知道在Oracle中每条SQL语句在执行之前都需要经 ... -
Optimizer CBO RBO
2011-12-12 16:17 820Oracle 数据库中优化器(Optimizer)是SQL ... -
ORA-01555
2011-12-12 15:59 812ORA-01555 快照过旧,是数据库中很常见的一个错误, ... -
Oracle 分区表
2011-12-12 15:36 871一. 分区表理论知识 Oracle提供了分区技 ... -
DB 迁移到Data Guard 实施方案
2011-12-08 13:35 689原DB是 Linux Heartbeat 的HA 系统。 ... -
exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
2011-12-08 11:31 1181关于exp/imp 和 expdp/impdp, 之前整理 ... -
限制IP 访问 Oracle 的方法
2011-12-08 10:48 947一. 修改sqlnet.ora 文件 sqlnet.o ... -
ORACLE 百万行数据查询优化
2011-12-01 09:36 7131.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wher ... -
如何恢复一个被误drop的存储过程
2011-12-01 09:37 649这种恢复是非常容易的,原理就是利用了oracle里所有的存储过 ... -
Oracle密码文件
2011-12-05 11:49 738创建Oracle密码文件的命令 orapwd fil ... -
Oracle误删除表数据后的恢复详解
2011-12-05 11:49 755在过去,如果用户误删/更新了数据后,作为用户并没有什么直 ... -
Oracle10g新特性:临时表空间组(temporary tablespace group)
2011-12-05 11:49 885Oracle10g新特性:临时表空间组(temporar ... -
sql中 in 、not in 、exists、not exists 用法和差别
2011-12-01 09:37 689exists (sql 返回结果集为真) not e ... -
表空间(tableSpace) 段(segment) 盘区(extent) 块(block) 关系
2011-12-01 09:36 592Oracle表空间(tableSpace)、段 (se ... -
Oracle bitand()和trunc()函数使用方法
2011-12-01 09:36 867Oracle bitand()和trunc()函数使用方 ... -
关系数据库设计范式
2011-11-30 11:10 578关系数据库设计范式 ... -
SQLSERVER ORACLE MYSQL高效分页查询
2011-11-30 11:08 673SQLSERVER ORACLE MYSQL高效分页查询 ... -
Oracle对大对象类型操作:blob,clob,nclob,bfile
2011-11-30 11:05 661Oracle对大对象类型操 ...
相关推荐
oracle锁表查询oracle锁表查询oracle锁表查询oracle锁表查询
Oracle查询用户锁表文档,相信描述如何查询用户锁表,附有代码!
Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?
2 SS(Row-S) 行级共享锁,其他对象只能查询这些数据行 Select for update、Lock for update、Lock row share 3 SX(Row-X) 行级排它锁,在提交前不允许做DML操作 Insert、Update、Delete and so on
常见的锁查询和处理 当前系统中存在的锁争用: 引发争用的session信息: 引发争用的sql语句: 引发争用的数据对象 --查看被锁对象 --数据库中的表锁,查找某个表被哪个session锁定 --DML语句产生的锁 --谁锁住了表...
用oracle数据库的人都知道,某些表被锁住过后,一使用应用程序就报错。这个程序可以很好的解决这个问题。
oracle 查看锁表sql 及如何解锁,多给点分,为了下载别的资料。大家相互学习相互进步
oracle查询锁表和解锁。oracle在操作的过程中经常会遇到锁表的情况,一般能够用kill命令消除。
先查看哪些表被锁住了 select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid and sid in( select a.SESSION_ID from v$locked_object a,dba_objects b ...
快速查找oracle锁对象 ,并且可以杀死该会话,解锁
oracle锁表查询具体执行sql
Oracle事务、锁表查询及相关实用查询SQL语句
查询oracle锁所属进程,并生成相应的kill进程脚本。。。。。。。。。。。。。。
提供详细的oracle查询锁表之间的依赖关系,方便大家在排查锁表问题的问题定位
查询ORACLE死锁以及解锁语句查询ORACLE死锁以及解锁语句
ORACLE 如何查询被锁定表及如何解锁释放session
操作Oracle出现错误:ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源。查询数据库引发的锁,然后手工用命令释放。
1.什么是ORACLE锁 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性...
执行查询语句查询Oracle是否有死锁,以及叫你如何解锁。