`

数据库死锁问题

阅读更多
数据库死锁:

锁分类:
S 共享锁
U 更新锁
X 排它锁

锁兼容性:
锁  S    U    X
S   Y    Y    N
U   Y    N    N
X   N    N    N

死锁场景:

单表:
场景1: T1, T2 X锁都加不上.
T1                T2
S                 S
X                 X

场景2: T1 X锁加不上, T2 U锁加不上.
T1                T2
U                 S
X                 U

多表(A,B):
场景3:  T1, T2 X锁都加不上.
T1                 T2
S(A)               S(B)
X(B)               X(A)

场景4: T1, T2 S锁都加不上.
T1                 T2
X(A)               X(B) 
S(B)               S(A)

场景5:  T1, T2 U锁都加不上.
T1                 T2
U(A)               U(B)
U(B)               U(A)

场景6:  T1 S锁加不上,T2 U锁加不上.
T1                 T2
U(A)               X(B)
S(B)               U(A)


场景7:  T1 S锁加不上,T2 X锁加不上.
T1                 T2
S(A)               X(B)
S(B)               X(A)

场景8:  T1 U锁加不上,T2 X锁加不上.
T1                 T2
S(A)               U(B)
U(B)               X(A)

..............
乐观锁:
..............
http://ajava.org/course/open/5391.html

乐观锁是解决并发更新丢失问题,较悲观锁而言性能更好.

关于乐观锁如何进行版本控制, Hibernate 应该是更新时同步了缓存的, 因此在提交之前,做个切点判断实体的版本号是否大于当前数据库的版本号, 就可以抛出异常了. 没看源码,瞎猜的.

在看了代码后,发现是执行更新后,根据返回影响的行数来决定是否抛出异常的,与缓存没关系.


1
1
分享到:
评论

相关推荐

    关于Oracle数据库死锁问题的研究与讨论

    关于Oracle数据库死锁问题的研究与讨论

    HIS系统SQL Server数据库死锁问题的分析与解决.pdf

    HIS系统SQL Server数据库死锁问题的分析与解决 SQL Server数据库是HIS系统中非常重要的一部分,负责存储和管理大量的医疗数据。然而,在实际应用中,SQL Server数据库可能会出现死锁问题,导致系统性能下降, thậm...

    Oracle数据库死锁问题研究.pdf

    Oracle数据库死锁问题研究.pdf

    Sybase数据库死锁问题

    "Sybase数据库死锁问题" 在Sybase数据库中,死锁的问题对系统的性能和吞吐量都有重要影响。经检测发现,管理信息系统的死锁主要是因为两个或多个线程(登录)抢占同一表数据资源。如果不解决死锁问题,将会对系统的...

    数据库死锁-解决死锁问题的三种办法

    总之,解决数据库死锁问题的三种方法各有优缺点,实际应用中应根据具体情况和需求选择最适合的策略。预防死锁虽能有效避免死锁的发生,但可能限制了资源的利用率;检测死锁虽然灵活性较高,但可能会增加系统的复杂性...

    Oracle数据库死锁问题研究 (1).pdf

    Oracle数据库死锁问题研究 (1).pdf

    关于Oracle数据库死锁问题的研究与讨论.pdf

    关于Oracle数据库死锁问题的研究与讨论.pdf

    各种类型数据库的死锁问题

    数据库死锁问题解决方案 在实际开发中,数据库死锁问题是一个常见的问题,会对系统的性能和吞吐量产生明显的影响。为了解决这个问题,需要从多方面进行考虑。本文将从数据库死锁的定义、类型、解决方案等方面进行...

    数据库 死锁的解决

    为了更好地理解和解决数据库死锁问题,下面将详细介绍几种优化策略及实际应用场景。 1. **统一锁定顺序:** 保证在所有事务中按相同顺序锁定资源是预防死锁的有效手段之一。例如,在编写存储过程时,可以明确指定...

    sql数据库死锁查询工具

    本文将深入探讨“sql数据库死锁查询工具”及其在解决数据库死锁和阻塞过程中的作用。 **1. SQL死锁** SQL死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力干涉,它们都将无法...

    oracle数据库解决死锁

    Oracle数据库解决死锁 Oracle数据库解决死锁是指在Oracle...解决Oracle数据库死锁问题需要具备一定的数据库管理知识和PL/SQL编程技能。同时,也需要了解Oracle数据库的工作原理和死锁机理,以便更好地解决死锁问题。

    查看数据库死锁信息

    标题所提及的"查看数据库死锁信息"是一个至关重要的任务,因为死锁可能导致数据库性能下降,甚至影响到服务的正常运行。当出现"Deadlock found when trying to get to lock; try restarting transaction"这样的错误...

    数据库死锁原理实验

    SQLServer数据库死锁介绍,以及使用独立的事务模拟死锁的产生。

    获取数据库死锁信息过程

    一个经典的获取SQLSERVEr数据库死锁及引起锁定的进程的存储过程。执行时,必须具有数据库超级管理员权限。

    InnoDB数据库死锁问题处理

    《InnoDB数据库死锁问题详解及解决策略》 在MySQL数据库中,InnoDB存储引擎以其事务安全性和行级锁定机制而备受青睐。然而,这种高级别的并发控制也带来了一种可能的问题——数据库死锁。本文将深入探讨InnoDB在...

    分布式数据库死锁检测算法分析

    分布式课堂上分享讲的ppt,简要介绍了死锁检测的基本概念,以及分布式数据库几种常见的死锁检测算法。

    较实用的ORACLE数据库死锁查杀

    ### ORACLE数据库死锁查杀方法详解 #### 一、引言 在Oracle数据库系统中,当两个或多个事务在等待对方释放资源时,就会出现死锁现象。死锁不仅会降低系统的整体性能,还可能导致某些重要事务长时间无法完成,严重...

    数据库死锁,导致其他更新操作无法进行

    数据库死锁,导致其他更新操作无法进行 此时需要查询出该死锁的进程,将其杀死

    数据库死锁监控.exe

    数据库死锁监控,自动刷新,右键杀死进程,查看存储历史执行时间等信息。

Global site tag (gtag.js) - Google Analytics