教您如何检查oracle死锁

数据库 Oracle
程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错,这种现象,成为数据死锁,下文就将为您介绍检查oracle死锁的方法,供您参考。

oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看。

一、数据库死锁的现象

程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。

二、oracle死锁的原理

当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。

三、oracle死锁的定位方法

通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。

1)用dba用户执行以下语句

  1. select username,lockwait,status,machine,program from v$session where sid in  
  2. (select session_id from v$locked_object) 

如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:
Username:死锁语句所用的数据库用户;
Lockwait:死锁的状态,如果有内容表示被死锁。
Status: 状态,active表示被死锁
Machine: 死锁语句所在的机器。
Program: 产生死锁的语句主要来自哪个应用程序。

2)用dba用户执行以下语句,可以查看到被死锁的语句。

  1. select sql_text from v$sql where hash_value in   
  2. (select sql_hash_value from v$session where sid in  
  3. (select session_id from v$locked_object))  

 

 

 

 

【编辑推荐】

解决Oracle死锁的快捷方法

Oracle case语句语法简介

详解oracle授权语句

Oracle修改用户语法介绍

Oracle身份验证的三种方法

责任编辑:段燃 来源: 互联网
相关推荐

2010-10-26 10:48:16

ORACLE备份

2010-11-18 16:27:37

2010-11-16 09:49:22

Oracle重建索引

2010-10-28 11:29:18

ORACLE用户权限

2010-10-29 13:30:33

Oracle归档日志

2010-10-27 16:56:05

Oracle重复记录

2010-10-28 09:21:42

oracle中存图片

2010-10-29 11:51:30

oracle用户名

2010-10-27 15:40:14

oracle分页查询

2010-10-12 14:53:31

mysql索引优化

2010-09-24 16:52:18

sql DATENAM

2010-10-27 17:04:41

Oracle动态查询

2010-10-26 16:54:16

oracle全文索引

2010-09-26 13:56:43

SQL远程查询

2010-11-29 13:28:55

sybase自动备份

2010-11-25 10:44:30

2010-10-12 11:07:34

MySQL存储过程

2010-10-08 11:27:34

MySql访问限制

2010-10-12 16:35:05

MySQL用户权限

2010-10-13 15:59:21

MySQL索引
点赞
收藏

51CTO技术栈公众号