Sql server lck_m_x锁锁定整个数据库
我们遇到了整个数据库都无法访问的情况。在查看活动监视器和按持续时间排序时,我看到大量的积压查询,下面是最旧的查询Sql server lck_m_x锁锁定整个数据库,sql-server,sql-server-2012,database-locking,Sql Server,Sql Server 2012,Database Locking,我们遇到了整个数据库都无法访问的情况。在查看活动监视器和按持续时间排序时,我看到大量的积压查询,下面是最旧的查询 (@0 nvarchar(max) ,@1 nvarchar(max) ,@2 decimal(4,2),@3 decimal(1,0),@4 datetime,@5 int,@6 int,@7 int)UPDATE [model].[InsurancePolicies] SET [PolicyCode] = @0, [GroupCode] = @1, [Copay] = @2, [
(@0 nvarchar(max) ,@1 nvarchar(max) ,@2 decimal(4,2),@3 decimal(1,0),@4 datetime,@5 int,@6 int,@7 int)UPDATE [model].[InsurancePolicies]
SET [PolicyCode] = @0, [GroupCode] = @1, [Copay] = @2, [Deductible] = @3, [StartDateTime] = @4, [PolicyholderPatientId] = @5, [InsurerId] = @6, [MedicareSecondaryReasonCodeId] = NULL
WHERE ([Id] = @7)
生产lck_m_x锁
它只是永远坐在那里,没有取得进展。我看不出的是
为什么一个简单的Id更新要花这么长时间?
为什么要生产lck_m_x锁?这意味着什么?
为什么一个查询会锁定整个数据库?
如果我在Activity Monitor中关闭了一个进程,所有后续的查询选择、更新等都会影响到各种不相关的表,几乎会立即清除
有解决问题的建议吗?您是否检查了sys.dm_exec_requests以查看此查询正在等待什么?请看阻塞会话id、等待类型、最后等待类型等。如果不是原因,杀死这些进程不会解决问题并允许所有后续进程通过,是吗?对不起,我在项目符号列表的末尾停止了。我的观点仍然站得住脚:我们无法猜测为什么这一过程很慢/停滞。当它再次发生时,您需要进一步调查。好的,它现在正在发生……我在sys.dm_exec_请求中查找什么?请参阅我的第一条评论