0

トランザクションがしばらくの間キャンセルもコミットもされていない場合にトランザクションを強制終了するように SQL Server 2008 を構成する方法はありますか? (電源、ネットワーク接続、または開いているコンピューターに切断されるものは何でも言ってください。)

いくつかの定義されたルールセットの後に自動的に発生するか、アクティブなトランザクション + 実行時間について SQL サーバーにクエリを実行するコマンド ライン アプリケーションを作成して呼び出すことによって発生します...そして SQL Server に「凍結されたトランザクションを閉じるように指示します」 "。

4

1 に答える 1

2

ここからゲイル・ショーを引用するには:

SQL Server はクエリをタイムアウトしませんが、接続しているアプリケーション (この場合はクエリ アナライザー) がタイムアウトします。

接続に使用している技術 (ADO など) には、おそらく接続タイムアウトと実行タイムアウトのプロパティがあり、呼び出しコードで変更できます。デフォルトは通常 30 秒です。

問題のある各 spid を殺すループで、次のようなものをラップする可能性があります。

select datediff(second, last_batch, getdate()) as secs_running, *
from sys.sysprocesses
where hostname != ''
    and open_tran = 1

どのプロセスを強制終了しても「安全」であるかを見つける方法については、おそらく多くの意見があるでしょう。また、プロセスで行われたデータ変更がロールバックされることが保証されているかどうかもわかりません。

于 2012-04-11T14:36:44.197 に答える