2
SQL Serverでロックされたテーブルまたは行を検出する
ブロックされたセッションの詳細を追跡する方法を理解/学習しようとしています。 そこで、次のセットアップを作成しました。 create table foo (id integer not null primary key, some_data varchar(20)); insert into foo values (1, 'foo'); commit; 次に、2つの異なるクライアントからデータベースに2回接続します。 最初のセッションの問題: begin transaction update foo set some_data = 'update' where id = 1; ロックを保持するために、明示的にコミットしません。 2番目のセッションでは、同じステートメントを発行します。もちろん、ロックのために待機します。セッション2がfooテーブルを待機していることを確認するために、さまざまなクエリを使用しようとしています。 sp_who2 以下を示します(重要な情報のみを表示するためにいくつかの列を削除しました)。 SPID | ステータス| BlkBy | DBName | コマンド| SPID | リクエストID ----- …