【问题标题】:Azure SQL: Negative SPID = -5Azure SQL:负 SPID = -5
【发布时间】:2021-12-28 18:55:17
【问题描述】:

我有 AzureSQL 数据库(预置 - 2vCore,通用),有时我的查询被 SPID = -5 的会话阻止。

我没有找到任何关于此负 SPID 以及如何避免阻止我的查询的信息。

感谢您提供任何信息和帮助

【问题讨论】:

标签: azure-sql-database


【解决方案1】:

具有负 SPID 的会话可能是孤立的事务。您不能使用 KILL 命令终止会话,因为它需要一个正 SPID 号。尝试在 Azure SQL 数据库上运行以下查询:

SELECT 
    DISTINCT(request_owner_guid) as UoW_Guid
FROM sys.dm_tran_locks
    WHERE request_session_id =-5
GO

这应该返回一个类似于以下格式的 GUID:00000000-0000-0000-0000-000000000000

尝试使用 GUID 而不是 SPID 来终止会话,如下所示:

KILL '00000000-0000-0000-0000-000000000000' -- replace GUID value with UoW_Guid value from above query

【讨论】:

  • 同时执行了 sp_who2 和您的 select,但是当另一个会话被阻止时 session_id = -5 不存在
  • 结果截图link
  • 使用此处显示的查询docs.microsoft.com/en-us/azure/azure-sql/database/… 代替 sp_who2
  • 我看到,在 sys.dm_exec_requests 中,阻塞会话上的 wait_type 是“PAGEIOLATCH_SH”,而在 sys.dm_exec_session_wait_stats 中,“PAGEIOLATCH_SH”上的大多数 wait_time_ms 都阻塞了会话
  • 请在此处查看我的答案stackoverflow.com/questions/47317472/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2014-03-29
相关资源
最近更新 更多