请教各位大侠:Oracle中会出现死锁吗?我是不是对概念不太清楚?比如两个会话相互争夺资源,Oracle检测到后会自动撤销引起死锁的某一条语句,但不会撤销整个事务,那两个会话不还是相互阻塞?Oracle中如果存在死锁是什么情况呢?是我上面说的那种情况吗?还有Oracle中的锁升级是怎么一回事?诚心求教!!!

解决方案 »

  1.   

    Oracle死锁 和 因为应用程序而引起的死锁 有什么区别吗?
      

  2.   

    http://hi.baidu.com/lijiaxin006/blog/item/3d294ee8c3bda9d9d439c979.html 我对oracle不了解。这个链接或许对你有用。
      

  3.   

    http://space.itpub.net/17203031/viewspace-682115 这个也觉得很好!
      

  4.   

    参考:
    锁 死锁 阻塞 Latch 等待 详解
    http://blog.csdn.net/tianlesoftware/archive/2010/08/19/5822674.aspx
      

  5.   

    会出现死锁,一般情况下oracle会自动处理死锁,结束掉死锁中的某个session的操作.
      

  6.   

    死锁,就是2个进程争用一个资源,其中一个锁一直没有释放该资源,而另外一个进程一直等待,,一般出现在程序里,不要写死锁的语句,不管程序处理结果如何都要及时COMMIT或者ROLLBACK就好了,
      

  7.   

    Oracle中会出现死锁吗?
    会出现死锁,虽然 oracle 默认的并发机制很少会导致死锁。比如两个会话相互争夺资源,Oracle检测到后会自动撤销引起死锁的某一条语句,但不会撤销整个事务,那两个会话不还是相互阻塞?
    oracle 会自动检测到死锁,并终止其中一条语句以解决死锁。终止此语句后,此语句所获取的锁会被释放,因此不会再因为此语句所保持的锁而阻塞其他会话。还有Oracle中的锁升级是怎么一回事?
    oracle 不支持锁升级,例如将某一事务在同一张表上的多个行锁升级为表锁。这样可以避免由于锁升级而导致死锁。