質問

SQL Server 2000 データベースのデッドロックの問題をデバッグして追跡する方法についての提案を探しています。トレース フラグ 1024 と 3605 を使用することを推奨されました。これにより、次のことがわかりました。

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

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

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

このすべての共通の問題を追求する上で、他に何か提案やハッピーエンドの戦争物語はありますか?

役に立ちましたか?

解決

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

他のヒント

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

関連する SQL ステートメントを理解したら、コード分析が確実に役立ちます。一部のサム ルールは、行がアクセスされる順序をチェックし、SQL ステートメントに使用される分離レベルをチェックします。プロファイラー トレースは非常に役立ちます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top