プロダクトSQLインスタンスを2012年から2016年にアップグレードしました。それが存在する場合にはデッドロックを見つけるために努力してきたように、私はちょうど直面しているし、何が起こっているかを理解していません。私は問題を理解していない理由は、1つのセッションが別のセッションをブロックしているが、ブロッキングセッションが選択クエリセッションです。別のセッションがテーブルを挿入するのを防ぎます。SELECTクエリはSQL Serverのテーブルまたはページをロックしますか?
ブロックされたセッションクエリは次のとおりです。
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:PAGE:10:1:20598647
トランザクション分離レベル:読み取り
をコミット誰が助けることはできますか?
排他ロックでは共有ロックを解除する必要があることはわかりませんでした。また、このアップグレードの前にこの種の問題に直面したことはありません。それが質問の原因を掘り起こす理由です。 –
https://technet.microsoft.com/en-us/library/ms186396(v=sql.105).aspx –
回答ありがとうございます。 –