2007/1/17
大量データ(約200万件)が登録された状態でバッチ処理を連続して行っていたが、ある日速度が急激に低下していることに気が付いた。EnterpriseManagerで確認したところ、赤い印のブロッキングが頻繁に発生していた。インデックスの再構築を行ってみたらどうかと思い試してみたら、速度が元に戻った。2時間以上かかっていた処理が1時間以内で終わるようになった。
-----------------------------------------------------------
「トレースフラグ1204が吐き出す情報を解析する」に…
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=26&topic=23790
dbcc traceon(1200, 1204, 1205, 3604)
1200 ロック情報を出力
1204 デッドロックに関係するロックのタイプと影響を受ける現行コマンドを戻す
1205 デッドロック時に実行中のコマンドに関する詳細情報を戻す
3604 トレース出力をクライアントに送信する
SQL Server 2005 および SQL Server 2000 のブロッキングを監視する方法http://support.microsoft.com/kb/271509/ja
第 3 章 トランザクション分離レベルの選択とデッドロックの問題
http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech3.aspx
非クラスタインデックスを追加することにより回避されたという話題---海外のサイト
http://forums.databasejournal.com/showthread.php?t=32889&goto=nextnewest
【SQL Server Tips】トレースフラグ 1204 が吐き出す情報を解析する
http://blogs.timberlandchapel.com/blogs/timberlandchapel/archive/2005/06/28/22.aspx
SQL Server 技術情報 - デッドロックの解決方法
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25489&forum=26&4
http://support.microsoft.com/kb/832524
松本 崇博様の PASSJ Conference 2004「パフォーマンス チューニング」セッション資料 (会員IDが必要)
http://www.sqlpassj.org/conf2004/dl.aspx#Expert03
※メモリ使用量の内訳やメモリが解放されない理由、プロシージャキャッシュ、データバッファキャッシュ、接続メモリ、ロックエスカレーション、ロック待ち、デッドロックの監視方法など、初級者が勘違いしやすい動作を中心に説明されている。