Oracleで長時間実行されているステートメントを強制終了する方法

Oracle のステートメントの処理時間が長すぎる場合は、以下の方法で処理を終了できます。

  1. Ctrl + Cで強制終了:実行中のコマンドプロンプトでCtrl + Cを押すと、現在実行中のコマンドが中断されます。すると、Oracleは直ちに実行を停止して、コマンドプロンプトに戻ります。
  2. Oracleの管理ツールによる利用の場合:SQL Developer、ToadなどのOracle管理ツールを利用している場合は、ツール画面の「キャンセル」ボタンを押すことで、実行中の文を停止することができます。
  3. DBA権限が必要なため、KILL SESSIONコマンドを使用します。以下の文を実行することで、指定したセッションの実行文を終了できます。
  4. ALTER SYSTEM KILL SESSION ‘sid,serial#’;
  5. これにより、SIDが会話の識別子と、serial#が会話のシリアルナンバーになります。以下のSQL文を使用して、終了する必要があるsessionのSIDとserial#を取得できます。
  6. SELECT sid, serial# FROM v$session WHERE ….\;
  7. WHERE句に、終了する会話の絞り込み条件を必要に応じて追加することができます。

なお、この手法はコミットされていないトランザクションがロールバックされる可能性があるため、慎重に使用してください。また、ステートメントの実行に時間がかかりすぎる場合はクエリを最適化するか、システムパラメータを調整してパフォーマンスを向上させることを検討してください。

bannerAds