2009-07-17 10 views
0

SQL 2008のイベントテーブルに対して非常に小さな削除を実行しており、ランダムにデッドロックが作成されています。しかし、我々はそれを要求に応じて再現することはできません。 deleteステートメントは、2〜5行の最大値に適しています。SQL 2008の単純な削除のデッドロック

はAdministration_NET.dbo.tblEvents EMSaccountIDは= 'DELE10A'

から任意のアイデアを削除しますか?

+1

詳細情報は、実行計画やインデックスのように –

答えて

0

実行:

SET SET SHOWPLAN_ALL ON 

してから削除、テーブルスキャンはありますか?もしそうなら、あなたはインデックス問題を持っています

3

それ自体に対するデッドロックまたは別のステートメントによるデッドロック?

シンプルにすることができますreader/writer deadlock based on index access order、私のリンクを参照してください。 EMSaccountIDがクラスター化されていない索引の場合は、これが可能性が高いです。

0

tblEventsテーブルには何種類のステートメントが当たりますか?削除と同時に挿入/更新/選択文が実行されている可能性はありますか?いくつかの削除を試みるのと同時に大量の挿入/更新/選択を実行することによって問題を再現することができます。

0

私は愚かな考えを持っています。多分あなたはカスケード削除を使用するためにAdministration_NET.dbo.tblEventsテーブルを設定します...この場合、削除操作はより多くのテーブルをロックします。

1

誰もがより豊かな情報がなくてもあなたを助けることはできません。特に

を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 

この情報を貼り付けると、問題を恐れている。

関連する問題