Orcale 解决程序死锁

前两天发现公司数据库从连接到查询的变得非常慢,已经影响到了项目的开发,所以就试着去解决了一下,这里记录下过程:

  1. 连接上数据库后,执行下面的语句查看死锁进程,主要看sid和serial#,因为后面要根据他们去Kill进程:
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
  1. 如果查询有结果说明存在死锁进程,用sid和serial#Kill进程:
alter system kill session '你的sid,你的serial';
  1. kill之后再去执行1中的语句查看有没有产生新的死锁,有的话继续Kill,另外要注意一下object_name,也可根据object_name去查看是哪个对象产生的死锁,从而判断死锁发生原因。

我们最后发现object_name 是同事写的物化视图,把物化视图删除,问题解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,476评论 0 9
  • 常用语句: sql/plus sqlplus 'amdocs/Amdocs.Jx.China.110#@ysdb1...
    好好学习的蜗牛阅读 3,118评论 0 0
  • 第一天 7月13日OCP笔记: Oracle Ocp11g准备资料: OracleFundmentals 书 管理...
    fjxCode阅读 2,845评论 0 4
  • 在数据库的开发过程中,经常碰到包、存储过程、函数无法编译或编译时会导致PL/SQL 无法响应的问题。碰到这种问题,...
    无浪不欢阅读 556评论 0 1
  • 参考 PPAutoPackageScript 基于 AutoPacking-iOS 修改 使用方法AutoPack...
    飞鱼ll阅读 501评论 0 0