O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog
CHANGE_SESSION_PRIORITY
CHANGE_SESSION_PRIORITY permite que superusuários alterem imediatamente a prioridade de qualquer sessão no sistema. Somente uma consulta, uma sessão ou um usuário pode ser executado com a prioridade CRITICAL.
Sintaxe
CHANGE_SESSION_PRIORITY(pid, priority)
Argumentos
- pid
-
O identificador de processo da sessão cuja prioridade é alterada. O valor
-1se refere à sessão atual. Requer um valorINTEGER. - priority
-
A nova prioridade que será atribuída à sessão. Esse argumento deve ser uma string com o valor
CRITICAL,HIGHEST,HIGH,NORMAL,LOWouLOWEST.
Tipo de retorno
Nenhum
Exemplos
Para retornar o identificador do processo do servidor que lida com a sessão atual, use o exemplo a seguir.
SELECT pg_backend_pid();+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
Neste exemplo, a prioridade da sessão atual é alterada para LOWEST.
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
Neste exemplo, a prioridade da sessão atual é alterada para HIGH.
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
Para criar um procedimento armazenado que altera a prioridade de uma sessão, use o exemplo a seguir. A permissão para executar esse procedimento armazenado é concedida ao usuário do banco de dados 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;
Depois, o usuário do banco de dados denominado test_user chama o procedimento.
CALL sp_priority_low(pg_backend_pid());+------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+