データベース管理者が直面する課題の 1 つは、特定のテーブルにどのロックが保持されているかを判断することです。この情報は、ブロック問題のトラブルシューティングと最適なデータベース パフォーマンスの確保に重要です。
クエリ バッチに対してテーブル レベルのロックをリアルタイムで確認できますか?
どのロックを使用するかを決定する特定のクエリ バッチの行に適用すると、ブロッキング シナリオに関する貴重な洞察が得られます。ただし、SQL Server 2005 には、行レベルのロックをリアルタイムで決定する直接的なメカニズムが提供されていないことに注意することが重要です。
ブロックされたステートメントの識別
ではありませんが、行レベルのロックを正確に特定することが可能であるため、以下を使用してブロックが発生しているステートメントを特定できます。 query:
select cmd, * from sys.sysprocesses where blocked > 0
このクエリは、ブロックされているプロセスを表示し、ブロックしているエンティティに関する情報を提供します。ブロック階層を追跡することで、ブロック状況の根本原因を特定できます。
@MikeBlandford からの補足
ブロックされた列はセッション ID (SPID) を示します。ブロッキングプロセスの。この問題を解決するには、kill {SPID} を実行してブロッキング セッションを終了します。
以上がSQL Server 2005 のテーブル レベルのロックをリアルタイムで確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。