CHANGE_SESSION_PRIORITY - Amazon Redshift

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 super-utilisateurs de modifier immédiatement la priorité de n’importe quelle séance 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 valeur INTEGER.

priority

La nouvelle priorité à attribuer à la séance. Cet argument doit être une chaîne précisant la valeur CRITICAL, HIGHEST, HIGH, NORMAL, LOW ou LOWEST.

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. | +------------------------------------------------------+