sqlserver数据库死锁解决大全.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sqlserver数据库死锁解决大全

查询处理死锁会话的sql语句 系统管理技术 2009-11-17 15:38:49 阅读123 评论0 字号:大中小 一直以来自己都想写一个能够查询系统中有死锁的会话的语句,查到后杀掉会话, select (select username from v$session where sid=a.sid) blocker, ??? a.sid, is blocking, ?(select username from v$session where sid=b.sid) blockee, b.sid ??? from v$lock a,v$lock b ??? where a.block=1 and b.request0 ?and a.id1=b.id1 and a.id2=b.id2 查询哪些session阻塞了哪些其他进程. BLOCKER?????????? SID ISBLOCKING BLOCKEE?????????????????????????????? SID SYS??????????????? 46 is blocking SYS??????????????????????????????????? 36 SYS??????????????? 46 is blocking SYS??????????????????????????????????? 49 这个查的不是死锁,,只是查询哪些session阻塞了哪些其他进程 select * from v$sqltext? ????? where address in ( ????? select sql_address from v$session where sid in ( ????? select session_id from v$locked_object)) 这个只查询什么语句阻塞 然后自己写了个语句,该语句可以查询哪个用户的哪个对象,会话的sid,serial以及阻塞的语句,还是很全面的。 col owner format a10; col oracle_username format a10; col object_type format a10; select a.owner,a.object_name,a.object_type,b.oracle_username,cess,c.sid,c.serial#,d.sql_text from dba_objects a,v$locked_object b,v$session c,v$sqltext d where a.object_id=b.object_id and b.session_id=c.sid and c.sql_address=d.address; OWNER????? OBJECT_NAM OBJECT_TYP ORACLE_USE PROCESS???????????? SID??? SERIAL# SQL_TEXT SYS??????? T1???????? TABLE????? SYS??????? 3768:3772??????????? 36???????? 11 update t1 set id =15 where id=1 SYS??????? T1???????? TABLE????? SYS??????? 4008:2660??????????? 49???????? 21 update t1 set id =30 where id=2 ? 另外一篇文章处理死锁会话的sql 翻了一下以前的一些文档, 发现保存着查询oracle 死锁的sql 语句, 这是以前的一个前辈教给我的, 拿出来贴贴 --查询死锁SQL 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,gram,s.osuser from v$session s,v$lock l,dba_objects o WHERE l.sid = s.sid AND l.id1 = o.object_id(+) AND s.username is NOT NULL ; ? --杀死死锁的session, 释放死锁 alter system kill session 1055,621;? -- 第一个参数是 sid, 第二个参数是 serial# 可能有很多的死锁, 但是释放了前面的几个, 可能后面的锁

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档