gpt4 book ai didi

database - 什么是数据库中的死锁?

转载 作者:太空狗 更新时间:2023-10-30 01:41:44 24 4
gpt4 key购买 nike

什么是 SQL Server 中的死锁以及它何时出现?

死锁有哪些问题,如何解决?

最佳答案

一般来说,死锁是指两个或多个实体正在阻塞某些源,并且没有一个能够完成,因为它们以循环方式阻塞源。

一个例子:假设我有表 A 和表 B,我需要在 A 和 B 中做一些更新,我决定在使用时锁定它们(这确实是愚蠢的行为,但它服务于现在是目的)。与此同时,其他人以相反的顺序做同样的事情——先锁定 B,然后锁定 A。

按时间顺序,会发生这种情况:

proc1: 锁定​​ A

proc2: 锁定 B

proc1: Lock B - 开始等待直到 proc2 释放 B

proc2:锁定 A - 开始等待直到 proc1 释放 A

他们都不会完成。这是一个僵局。在实践中,这通常会导致超时错误,因为不希望任何查询永远挂起,并且底层系统(例如数据库)将终止未及时完成的​​查询。

一个真实世界的死锁示例是,当您将房门 key 锁在车里,而车 key 又锁在房子里时。

关于database - 什么是数据库中的死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com