gpt4 book ai didi

sql - 选择查询的事务死锁

转载 作者:行者123 更新时间:2023-12-03 10:10:38 24 4
gpt4 key购买 nike

有时,对于仅作为Select查询的存储过程,会出现以下错误:Transaction (Process ID 91) was deadlocked on lock
我最初的理解是,选择查询不会锁定表,也不会导致死锁,即使它试图查询的表正在被另一个进程更新/锁定,但似乎选择查询会导致死锁,因为好。

如果我将隔离级别设置为查询未提交,那可以解决问题吗?

最佳答案

My init understanding is that a Select query won't lock a table, or won't cause a deadlock



这种理解是错误的。 SELECT查询在其分析的行上使用共享锁。共享锁可能与来自更新/删除/插入语句的排他锁冲突。两个SELECT语句不会死锁,但是SELECT可以通过UPDATE死锁。当发生这种死锁时,SELECT通常是牺牲品,因为它没有执行任何更新,因此总是会丢失抽签。

与任何死锁一样,您需要发布所涉及表的确切架构,确切的T-SQL语句和死锁图。参见 How to: Save Deadlock Graphs (SQL Server Profiler)。通过此信息,您可以获取有关如何修复死锁的指导。

关于sql - 选择查询的事务死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826600/

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