SQL 2008のイベントテーブルに対して非常に小さな削除を実行しており、ランダムにデッドロックが作成されています。しかし、我々はそれを要求に応じて再現することはできません。 deleteステートメントは、2〜5行の最大値に適しています。SQL 2008の単純な削除のデッドロック
はAdministration_NET.dbo.tblEvents EMSaccountIDは= 'DELE10A'
から任意のアイデアを削除しますか?
SQL 2008のイベントテーブルに対して非常に小さな削除を実行しており、ランダムにデッドロックが作成されています。しかし、我々はそれを要求に応じて再現することはできません。 deleteステートメントは、2〜5行の最大値に適しています。SQL 2008の単純な削除のデッドロック
はAdministration_NET.dbo.tblEvents EMSaccountIDは= 'DELE10A'
から任意のアイデアを削除しますか?
実行:
SET SET SHOWPLAN_ALL ON
してから削除、テーブルスキャンはありますか?もしそうなら、あなたはインデックス問題を持っています
それ自体に対するデッドロックまたは別のステートメントによるデッドロック?
シンプルにすることができますreader/writer deadlock based on index access order、私のリンクを参照してください。 EMSaccountIDがクラスター化されていない索引の場合は、これが可能性が高いです。
tblEventsテーブルには何種類のステートメントが当たりますか?削除と同時に挿入/更新/選択文が実行されている可能性はありますか?いくつかの削除を試みるのと同時に大量の挿入/更新/選択を実行することによって問題を再現することができます。
私は愚かな考えを持っています。多分あなたはカスケード削除を使用するためにAdministration_NET.dbo.tblEventsテーブルを設定します...この場合、削除操作はより多くのテーブルをロックします。
誰もがより豊かな情報がなくてもあなたを助けることはできません。特に
をSQL Serverは、それが問題のトランザクションをロールバックした理由を記録しますので、あなたには、いくつかのトレースフラグを有効にする必要があります。
ので、デッドロックのトレースを有効:この設定を有効にすると
を
DBCC TRACEON(1204,1222)
(必要な場合は、サイクルSQL Serverは、あなたが起動オプションで指定することができたときに、この設定が消える)、あなたのSQLサーバーログには、デッドロックチェーンに関する情報が含まれています。
2003-05-14 11:46:26.76 spid4 Starting deadlock search 1 2003-05-14 11:46:26.76 spid4 Target Resource Owner: 2003-05-14 11:46:26.76 spid4 ResType:LockOwner Stype:'OR' Mode: S SPID:55 ECID:0 Ec:(0x43CAB580) Value:0x42bdf340 2003-05-14 11:46:26.76 spid4 Node:1 ResType:LockOwner Stype:'OR' Mode: S SPID:55 ECID:0 Ec:(0x43CAB580) Value:0x42bdf340 2003-05-14 11:46:26.76 spid4 2003-05-14 11:46:26.76 spid4 End deadlock search 1 ... a deadlock was not found. 2003-05-14 11:46:26.76 spid4 ---------------------------------- 2003-05-14 11:46:31.76 spid4 ---------------------------------- 2003-05-14 11:46:31.76 spid4 Starting deadlock search 2
この情報を貼り付けると、問題を恐れている。
詳細情報は、実行計画やインデックスのように –