CHANGE_SESSION_PRIORITY - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CHANGE_SESSION_PRIORITY

CHANGE_SESSION_PRIORITY permette agli utenti con privilegi avanzati di modificare immediatamente la priorità di qualunque sessione nel sistema. Solo una sessione, un utente o una query possono essere eseguiti con la priorità CRITICAL.

Sintassi

CHANGE_SESSION_PRIORITY(pid, priority)

Arguments (Argomenti)

pid

L'identificatore processo della sessione di cui è cambiata la priorità. Il valore -1 si riferisce alla sessione attuale. Richiede un valore INTEGER.

priority

La nuova priorità da assegnare alla sessione. Questo argomento deve essere una stringa con il valore CRITICAL, HIGHEST, HIGH, NORMAL, LOW o LOWEST.

Tipo restituito

Nessuno

Esempi

Per restituire l'identificatore del processo del server che gestisce la sessione corrente, utilizza l'esempio seguente.

SELECT pg_backend_pid(); +----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+

In questo esempio, la priorità viene modificata in LOWEST per la sessione attuale.

SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest'); +---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+

In questo esempio, la priorità viene modificata in HIGH per la sessione attuale.

SELECT CHANGE_SESSION_PRIORITY(-1, 'High'); +-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+

Per creare una stored procedure per modificare la priorità di una sessione, utilizza l'esempio seguente. L'autorizzaione per eseguire questa procedura archiviata viene concessa all'utente di database 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;

Quindi, l'utente di database denominato test_user richiama la procedura.

CALL sp_priority_low(pg_backend_pid()); +------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+