zoukankan      html  css  js  c++  java
  • 死锁产生的原因以及解决的方法

    原因分析:    

    首先死锁是怎么发生的:   

    简单说,两个或多个并发事务相互等待,互补想让,没有外力就无法继续下去,这就制造了死锁。数据库检测到死锁时,就会将死锁的各个事务回滚,并抛出ORA-00060异常。所以上面报错出现的情况极少,将死锁解除后又可以正常运行。

    解决思路:    

    死锁是无法根除的,特别在高并发的系统中。只有尽可能优化速度,减少互相等待的机会。

    原则为:执行速度越快越好,访问资源时锁的范围越小越好。根据这个原则就可以优化我们的sql,将负责的sql拆分,若果业务允许的情况下。还有事务越小越好。

    解决技巧:        

    1,出现死锁异常后,手工将死锁解开。        

    2,找出造成死锁的sql:            

    a,直接看日志:程序中日志做的很详细的话,是能够找到具体哪个sql报的错,操作的哪个表,还有别的模块也操作这个表,线程,并发的程序也会引起。            

    b,通过oracle的后台v$session表 和 v$sql 的分析 找到。         

    3,对sql进行优化。

  • 相关阅读:
    ubuntu LAMP的安装
    windows中安装liunx虚拟机
    jQuery Responsive OneByOne Slider Plugin
    轮播图收集
    移动端图片延迟加载插件
    图片幻灯插件
    小tip: base64:URL背景图片与web页面性能优化
    基于HTML5的可预览多图片Ajax上传
    字体平滑解决方案
    webstorm scss编译css配置
  • 原文地址:https://www.cnblogs.com/SZ2015/p/4719576.html
Copyright © 2011-2022 走看看