gpt4 book ai didi

sql-server-2008 - 我在哪里可以在我的存储过程中设置 DEADLOCK_PRIORITY?

转载 作者:行者123 更新时间:2023-12-04 17:36:39 25 4
gpt4 key购买 nike

我不确定在哪里可以使用

SET DEADLOCK_PRIORITY...

命令在我的存储过程中。是否需要在我开始交易之前?或者它可以在交易的任何地方?

谢谢大家!

最佳答案

我不确定我是否理解这个问题:您可以在任何需要的地方更改优先级。如果您不确定,那么您可以将它放在过程的开头,除非它可能是一个很长的过程并且只有一个特定的查询容易出现死锁。

虽然更好的解决方案可能是 avoid the deadlock如果可能的话。

您可能还需要注意,存储过程中的任何优先级更改都会在过程退出时重置为调用 session 的优先级:

set deadlock_priority high
go
select deadlock_priority from sys.dm_exec_sessions where session_id = @@spid
go

create proc dbo.p
as
begin
select deadlock_priority as 'PriorityBefore' from sys.dm_exec_sessions where session_id = @@spid
set deadlock_priority low
select deadlock_priority as 'PriorityAfter' from sys.dm_exec_sessions where session_id = @@spid
end
go

exec dbo.p

select deadlock_priority from sys.dm_exec_sessions where session_id = @@spid

drop proc dbo.p
go

set deadlock_priority normal
go

关于sql-server-2008 - 我在哪里可以在我的存储过程中设置 DEADLOCK_PRIORITY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596153/

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