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)
Argomenti
- pid
-
L'identificatore processo della sessione di cui è cambiata la priorità. Il valore
-1
si riferisce alla sessione attuale. Richiede un valoreINTEGER
. - priority
-
La nuova priorità da assegnare alla sessione. Questo argomento deve essere una stringa con il valore
CRITICAL
,HIGHEST
,HIGH
,NORMAL
,LOW
oLOWEST
.
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. | +------------------------------------------------------+