Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事
CHANGE_SESSION_PRIORITY
CHANGE_SESSION_PRIORITY を使用すると、スーパーユーザーはシステム内のセッションの優先度をすぐに変更することができます。優先度 CRITICAL で実行できるセッション、ユーザー、またはクエリは 1 つのみです。
構文
CHANGE_SESSION_PRIORITY(pid, priority)
引数
- pid
-
優先度が変更されたセッションのプロセス識別子。値
-1は、現在のセッションを表します。INTEGER値は必須です。 - priority
-
セッションに割り当てる新しい優先度。引数は、値
CRITICAL、HIGHEST、HIGH、NORMAL、LOW、またはLOWESTを含む文字列である必要があります。
戻り型
なし
例
現在のセッションを処理しているサーバープロセスのプロセス ID を返すには、次の例を使用します。
SELECT pg_backend_pid();+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
この例では、現在のセッションの優先度が LOWEST に変更されます。
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
この例では、現在のセッションの優先度が HIGH に変更されます。
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
セッションの優先度を変更するストアドプロシージャを作成するには、次の例を使用します。このストアドプロシージャを実行するアクセス許可は、データベースユーザー test_user に付与されます。
CREATE OR REPLACE PROCEDURE sp_priority_low(pid IN int, result OUT varchar) AS $$ BEGIN SELECT CHANGE_SESSION_PRIORITY(pid, 'low') into result; END; $$ LANGUAGE plpgsql SECURITY DEFINER; GRANT EXECUTE ON PROCEDURE sp_priority_low(int) TO test_user;
次に、test_userという名前のデータベースユーザーがプロシージャを呼び出します。
CALL sp_priority_low(pg_backend_pid());+------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+