3

SQL Server 2000 データベースのデッドロックの問題をデバッグして追跡する方法についての提案を探しています。トレース フラグ 1024 と 3605 を使用するように勧められました。

1024 - このトレース フラグは、デッドロックに関与しているロックの種類と影響を受ける現在のコマンドを返します。

3605 - このトレース フラグは、トレース出力をエラー ログに送信します。

特定のストアド プロシージャ、テーブル、およびインデックスは引き続き明らかにする必要があるため、これらのトレース フラグを使用して明らかにすることが目標です。そしてそこから、チューニングが必要なインデックス、クエリをチューニングするためのヒントのロック、および修正が必要な潜在的な sproc バグをよりよく知ることができます。

これをすべて共通の問題に追い込むための他の提案やハッピーエンドの戦争の話はありますか?

4

3 に答える 3

3

デッドロックのトラブルシューティングに関する聖書は次のとおりです。http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx

于 2008-09-09T18:51:03.997 に答える
3

デッドロックを分析するための非常に便利なスクリプト: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

于 2008-09-17T08:46:36.237 に答える
2

関連するSQLステートメントがわかれば、コード分析が確実に役立ちます。一部の経験則では、行にアクセスする順序をチェックし、SQLステートメントに使用される分離レベルをチェックしています。プロファイラートレースは大いに役立ちます。

ほとんどの場合、これは、リーダーがライターによって排他的にロックされたリソースの共有ロックを取得しようとしているためです。

于 2008-09-09T18:48:14.610 に答える