> 데이터 베이스 > MySQL 튜토리얼 > 关于“ORA-00060:等待资源时检测到死锁”问题的分析

关于“ORA-00060:等待资源时检测到死锁”问题的分析

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:09:15
원래의
2841명이 탐색했습니다.

最近现场反馈问题:一个访问oracle数据库的通讯程序记录了一些关于ldquo;ORA-00060:等待资源时检测到死锁rdquo;的错误日志。但

最近现场反馈问题:一个访问Oracle数据库的通讯程序记录了一些关于“ORA-00060:等待资源时检测到死锁”的错误日志。但通讯程序记录异常后并没有崩溃,还能继续运行,并且通讯数据看起来也很正常。

其实,鉴于数据库是存在大量并发访问的,只要存在并发访问,死锁就无法彻底避免,无非是几率大小而已。oracle数据库有检测当前会话死锁的功能,当死锁发生时,两个或多个并发事务相互等待,不靠外力就再也无法继续执行完了。数据库检测到死锁时,就会将死锁的各个事务回滚,并抛出ORA-00060异常。所以我们访问数据的程序,特别是无人值守的程序,一定要能处理此异常,在数据库发生这个异常之后,将其记录在日志中,并继续(重新)执行访问数据库的操作。

当然,我们还可以通过改进程序的效率来减少死锁发生的几率。首先可以提供数据库访问效率,优化数据库,优化sql,尽量减少访问数据库的时间,从而降低与其他会话并发死锁的可能性。另外,在业务允许的情况下,,应尽可能减少数据库事务的范围,将一个大的事务,分成小的事务,尽早提交。当然,事务的划分这是由业务决定的,不可能随便分开。

linux

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿