ことばシリーズ(1)

終極において,人は人生の意味は何であるかを問うべきではない.
むしろ自分が人生に問われていると理解すべきである.
一言で言えば,すべての人は人生に問われているのだ.
自分の人生の責任を引き受けることによってしか,その問いかけに答える事はできない.

ヴィクトール・E・フランクル (1905 – 1997)

ことばシリーズは,私が本を読んだりして印象に残った言葉を書いていきます.
月1回くらいを目標にします.

SQL Server2005 ロック状態の調査・解除方法

SQL Serverでデーターがロックされてしまった場合に,ロックしているプロセスを確認したりロックを強制的に解除したりする方法.

1. SQL Server Management Studioを起動
2. 利用状況モニタを表示
   [管理]→[利用状況モニタ]→右クリックでプロセスの表示
3. [プロセス情報]のブロッキング,ブロック元列を参考にロックしているプロセスIDを探す.
   行を右クリック→[詳細]で実行中のSQL文が表示されるのでこれも参考になる.

4. ロックしているプロセスIDが見つかったら,その行を右クリック→[強制終了]

【注意】
利用状況モニタの情報は,「更新」を押さないと最新の情報にならない.
※2009.12.16追記:ロックしているだけではダメで,ロックによって他のクエリー等がブロックされている状態にならなければブロッキングはカウントされない.そしてその状態の時に「更新」を押す必要がある.

・Management Studioが使えない場合
ストアドsp_whoを実行.
blk列にロックしているプロセスIDが表示される.
コマンドプロンプトから, Kill プロセスID

【注意】
サーバー上で管理者権限でおこなうこと.
※2010.1.22追記:SQL Server Management Studioを使う場合でもプロセスの強制終了は、サーバー上の管理者権限でSQL Server Management Studioを使う必要がある。