2011-07-19 15 views
0

私はデータベースで最も長いリビングロックを監視しようとしています。アイデアは、ロックが一定の期間保持されている場合、私のアプリケーションで警告を受け取るということです。SQL Server 2008のロックの作成時刻

しかし、私は人生のためにロックの作成時間を見つけることができません。

私が使用している:

exec msdb..sp_lock 
exec msdb..sp_who2 
SELECT * FROM sys.dm_tran_locks 
select * from sys.syslockinfo 
select cmd, * from sys.sysprocesses where blocked > 0 

をしかし、これらのどれもが、私は必要な情報を持っているように思いません。

アイデア?

理由がある可能性があるG

答えて

0

長時間実行されるトランザクションは、あなたが、私はロックを試してみて、監視するため誰にも知られたことがありませんsys.dm_tran_database_transactions

database_transaction_begin_time列を調べることで行うことができ、より理にかなって...それらの開始日時情報はありません。

+0

ありがとうが、これらのトランザクションのいくつかは非常に時間がかかるので、私はこれを使用できるとは思わない。しかし、私はあなたが監視されていないこのことについてあなたが正しいと思うようになり始めています。私はどこでもこれについて何かを見つけることはできません。 – Gisli

+0

@ Gisli:長いトランザクションがある場合は、これが問題になります... – gbn

+0

これは唯一の可能な説明ですか?私が取り組んでいるアプリケーションは、たくさんの大規模なデータベースを監視しており、大丈夫なトランザクションについて24時間365日警告を受け取ることは望ましくありません。 – Gisli

0

SQLプロファイラのLock:Acquired EventClassにはStartTimeとEndTimeがあります。あなたはそれをチェックしたいかもしれません

関連する問題