【发布时间】:2017-01-12 07:04:16
【问题描述】:
我们刚刚将生产 sql 实例从 2012 升级到 2016 标准版。由于我们一直在努力寻找死锁以防它存在,我刚刚遇到一个并且不太明白到底发生了什么。我不明白这个问题的原因是一个会话阻塞了另一个会话,但阻塞会话是一个选择查询会话。它会阻止另一个会话插入表格。
被阻止的会话查询是;
INSERT INTO [AUDITHISTORYLOG_BACKUP_2017_1]([TABLE_NAME],[OPERATION_TYPE],[HOST_NAME],[USER_NAME],[PRIMARY_KEY],[FIELD],[OLD_VALUE],[NEW_VALUE],[CREATE_DATE]) values(@1,@2,@3,@4,@5,@6,@7,@8,@9)
阻塞会话查询是;
SELECT * FROM AuditDB.dbo.AUDITHISTORYLOG_BACKUP_2017_1 WHERE CREATE_DATE>CAST(GETDATE()-30 AS DATE) ORDER BY CREATE_DATE DESC
这个选择查询如何阻止插入事务?
Wait_Type:LCK_M_IX
Wait_Resource:页面:10:1:20598647
事务隔离级别:已提交读
谁能帮忙?
【问题讨论】:
标签: sql sql-server locking