教您如何检查oracle死锁

 我来答
昜馄嵈
2013-11-03 · 超过86用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:75%
帮助的人:80.1万
展开全部
  oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看。
  一、数据库死锁的现象
  程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。
  二、oracle死锁的原理
  当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。
  三、oracle死锁的定位方法
  通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
  1)用dba用户执行以下语句
以下是代码片段:
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)
  如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:
  Username:死锁语句所用的数据库用户;
  Lockwait:死锁的状态,如果有内容表示被死锁。
  Status: 状态,active表示被死锁
  Machine: 死锁语句所在的机器。
  Program: 产生死锁的语句主要来自哪个应用程序。
  2)用dba用户执行以下语句,可以查看到被死锁的语句。
以下是代码片段:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式