SQL の実行に時間がかかってしまい、該当の処理を強制的に終了したいという場合は、CLOSE_SESSION、CLOSE_ALL_SESSIONS 関数を利用します。CLOSE_SESSION は特定のセッションを終了するのに対して、CLOSE_ALL_SESSIONS は全てのセッションを一度に終了するために利用します。以下はセッションを強制終了する時の実行例です。

特定のセッションを終了する場合

1) SESSIONS テーブルで、SQL の実行に時間がかかっているセッションを特定します。


[SESSIONS]

列名内容
USER_NAMEユーザ名
SESSION_IDセッションID
STATEMENT_STARTステートメントの開始時間
CURRENT_STATEMENT現在実行中のステートメント

2) CLOSE_SESSION で「session_id=<サーバ名>-7451:0x47386」を終了します。


3) SQLを実行していたセッション「session_id=<サーバ名>-7451:0x47386」は終了し、ユーザには以下のエラーが返されます。



全てのセッションを終了する場合

CLOSE_ALL_SESSIONS を実行すると、自セッション以外の全てのセッションを終了します。


検証バージョンについて

この記事の内容はVertica 7.1で確認しています。