Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CHANGE_SESSION_PRIORITY
CHANGE_ SESSION _ PRIORITY permet aux superutilisateurs de modifier immédiatement la priorité de n'importe quelle session du système. Seul(e) une séance, un utilisateur ou une requête peut s’exécuter avec la priorité CRITICAL
.
Syntaxe
CHANGE_SESSION_PRIORITY(pid, priority)
Arguments
- pid
-
L’identificateur de processus de la séance dont la priorité a été modifiée. La valeur
-1
fait référence à la séance actuelle. Nécessite une valeurINTEGER
. - priority
-
La nouvelle priorité à attribuer à la séance. Cet argument doit être une chaîne précisant la valeur
CRITICAL
,HIGHEST
,HIGH
,NORMAL
,LOW
ouLOWEST
.
Type de retour
Aucun
Exemples
Pour renvoyer l’identificateur de processus du processus serveur gérant la session actuelle, utilisez l’exemple suivant.
SELECT pg_backend_pid();
+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
Dans cet exemple, la priorité est modifiée pour être définie sur LOWEST
pour la session actuelle.
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');
+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
Dans cet exemple, la priorité est modifiée pour être définie sur HIGH
pour la session actuelle.
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');
+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
Pour créer une procédure stockée qui modifie une priorité de session, utilisez l’exemple suivant. L’autorisation d’exécuter cette procédure stockée est accordée à l’utilisateur de base de données 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;
Ensuite, l’utilisateur de base de données nommé test_user
appelle la procédure.
CALL sp_priority_low(pg_backend_pid());
+------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+