SQL Server 2008とその管理スタジオを使用しています。多くの行を生成するクエリを実行しました。赤いキャンセルボタンでキャンセルしようとしたのですが、10分以上止まりません。通常3分以内に停止します。
その理由は何でしょうか、どうすればすぐに停止できますか?
SQL Server 2008とその管理スタジオを使用しています。多くの行を生成するクエリを実行しました。赤いキャンセルボタンでキャンセルしようとしたのですが、10分以上止まりません。通常3分以内に停止します。
その理由は何でしょうか、どうすればすぐに停止できますか?
回答:
理由は何ですか
注意がサーバーに到達して処理できる場合、クエリのキャンセルは即座に行われます。クエリはキャンセル可能な状態である必要があります。SQLCLRからWebサービスを呼び出すなどの特定の操作を行う場合を除いて、ほとんどの場合はtrueです。注意がサーバーに届かない場合、通常はスケジューラの過負荷が原因です。
ただし、クエリがロールバックが必要なトランザクションの一部である場合、ロールバックを中断することはできません。10分かかる場合は、10分かかりますが、何もすることができません。サーバーを再起動しても効果はありませんが、リカバリがロールバックを完了する必要があるため、起動が長くなるだけです。
答えるためにそのあなたのケースに適用される具体的な理由は、自分を調査する必要があります。
sp_who2 'active'
CPUTimeとDiskIOの値を確認します。比較的値が大きいプロセスのSPIDに注意してください。
kill {SPID value}
最初に以下のコマンドを実行します:
sp_who2
その後、上記のコマンドから取得したSPIDを使用して以下のコマンドを実行します。
KILL {SPID value}
これはばかげた答えのようなものですが、少なくとも私の場合は確実に機能します。ManagementStudioでは、[クエリの実行をキャンセル]でクエリが停止しない場合、クリックするだけで現在のSQLドキュメントを閉じます。クエリをキャンセルするかどうかを尋ねられます。「はい」と答えると、数秒後に実行が停止します。その後、閉じる前にドキュメントを保存するかどうかを尋ねられます。この時点で、[キャンセル]をクリックしてドキュメントを開いたままにして作業を続けることができます。舞台裏で何が起こっているのかはわかりませんが、うまくいくようです。
キャンセルしてその実行を確認した場合
sp_who2 'active'
(アクティビティモニターは、古いSQLサーバー2000で使用できません)
殺したいSPIDを見つけます。例:81
Kill 81
sp_who2 'active'
もう一度実行 すると、おそらく眠っていることに気づくでしょう...ロールバック
ステータスを取得するには、KILLを再度実行します
Kill 81
次に、このようなメッセージが表示されます
SPID 81: transaction rollback in progress. Estimated rollback completion: 63%. Estimated time remaining: 992 seconds.
キーボードショートカットALT+ Breakを使用して、クエリの実行を停止できます。ただし、これがすべての場合に成功するわけではありません。
どうやらSQLサーバー2008 r2 64ビットでは、IISからの長時間のクエリでkill spidが機能しないようで、クエリが何度も再起動されるだけです。そしてそれはspidのを再利用しているようです。クエリにより、SQLサーバーは常に35%のCPUを使用し、Webサイトをハングさせます。私はbc /それがログインのための他のクエリに応答できないと思います
昔から同じことに悩んでいます。これは特に、リモートサーバーに接続している場合(遅い可能性があります)、またはネットワーク接続が悪い場合に発生します。マイクロソフトが正しい答えが何であるかを知っているかどうか疑問です。
しかし、私は解決策を見つけようとしたので。唯一の素人のアプローチが働いた
「クエリは現在実行中です。クエリをキャンセルしますか?」
「はい」をクリックします
しばらくすると、このクエリを保存するかどうか尋ねられます。
「キャンセル」をクリックしてください
そして投稿してください、あなたがクエリを実行するために再びスタジオが安定しているかもしれません。
それがバックグラウンドで行うことは、接続を使用してクエリウィンドウを切断することです。そのため、クエリを再度実行するには、リモートサーバーに再度接続するのに時間がかかります。しかし、このトレードオフは、そのタイマーが永遠に実行されるのを見ることの苦しみよりもはるかに優れています。
PS:これは私にとってはうまくいきます。!!!