CHANGE_SESSION_PRIORITY - Amazon Redshift

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

CHANGE_SESSION_PRIORITY

CHANGE_SESSION_PRIORITY を使用すると、スーパーユーザーはシステム内のセッションの優先度をすぐに変更することができます。優先度 CRITICAL で実行できるセッション、ユーザー、またはクエリは 1 つのみです。

Syntax

CHANGE_SESSION_PRIORITY(pid, priority)

Arguments

pid

優先度が変更されたセッションのプロセス識別子。値 -1 は、現在のセッションを表します。

優先度

セッションに割り当てる新しい優先度。この引数は、値 を持つ文字列である必要があります。 CRITICALHIGHESTHIGHNORMALLOW、または LOWEST

戻り型

なし。

Example

以下の例では、現在のセッションを処理しているサーバープロセスのプロセス ID が返ります。

select pg_backend_pid(); pg_backend_pid ---------------- 30311 (1 row)

この例では、現在のセッションの優先度が LOWEST に変更されます。

select change_session_priority(30311, 'Lowest'); change_session_priority --------------------------------------------------------- Succeeded to change session priority. Changed session (pid:30311) priority to lowest. (1 row)

この例では、現在のセッションの優先度が HIGH に変更されます。

select change_session_priority(-1, 'High'); change_session_priority --------------------------------------------------------------------- Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. (1 row)

次の例では、セッションの優先度を変更するストアドプロシージャが作成されます。このストアドプロシージャを実行するアクセス許可は、データベースユーザー 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.