2016-08-04 10 views
1

私はSQL Server 2008 R2を使用しています。lock_monitorのデフォルト間隔の設定/変更

私はTechNetでこの文書を読んでいる:https://technet.microsoft.com/en-us/library/ms178104(v=sql.105).aspx私のアプリケーションで

、私は5秒以内に産業機械に応答する必要があります。ときには(1日に1回)、データベースのデッドロックが発生し、トランザクションを再実行します。この手順はうまくいきます。

私の問題はデッドロック解決期間です。私がマシンに応答するのに5秒間利用できることを知って、私はlock_monitorスレッドのデフォルト間隔を2秒に設定したいと思います。したがって、デッドロックが検出され、5秒後に解決される可能性があります。これは、解決に最大7秒かかるためです。

可能ですか?

+0

あなたはステファンこれを理解しました次のデッドロック検索中に検出されるのですか? – scsimon

答えて

1

はい、ブロックされたプロセスのしきい値を変更することはできますが、そうしないでください。

Configure Blocked Threshold

Increase/Decrease Threshold

Why You Shouldn't Do This...

サイドノートで...

ロックモニタスレッドがデッドロックを検出した場合、デッドロックの検出間隔は限り低くする5秒からドロップされますデッドロックの頻度に応じて100ミリ秒とします。

ロックモニタスレッドがデッドロックの検出を停止した場合、Database エンジンは検索間隔を5秒に延長します。

デッドロックが検出されたばかりの場合、ロックを待たなければならない次の スレッドがデッドロックサイクルに入ると想定されます。デッドロックが検出された後の最初の2つのロック待ちの は、次の デッドロック検出間隔を待つのではなく、すぐにデッドロック検索をトリガーします。 たとえば、現在の間隔が5 秒であり、デッドロックが検出されたばかりの場合、次のロック待機は デッドロック検出器を直ちに開始します。このロック待機がデッドロックの一部 がある場合、それはすぐにではなく、

Reference

+0

それは変です!私はそれがバグか自発的な特徴か分からない。なぜ[このページ](https://support.microsoft.com/en-us/kb/2157154)は言う:_ブロックされたプロセスを検出できる最小時間は5秒ですか?それは完全に構成可能ではありませんか? – stephanejulien

+0

バグではありません@stephanejulien – scsimon

関連する問題