AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门。
CHANGE_SESSION_PRIORITY
CHANGE_SESSION_PRIORITY 使超级用户可以立即更改系统中任何会话的优先级。只有一个会话、用户或查询可以使用优先级 CRITICAL
运行。
语法
CHANGE_SESSION_PRIORITY(pid, priority)
参数
- pid
-
更改其优先级的会话的进程标识符。值
-1
指的是当前会话。 - priority
-
要分配给会话的新优先级。此参数必须是包含以下值的字符串:
CRITICAL
、HIGHEST
、HIGH
、NORMAL
、LOW
或LOWEST
。
返回类型
无
示例
以下示例返回处理当前会话的服务器进程的进程标识符。
select pg_backend_pid(); pg_backend_pid ---------------- 30311 (1 row)
在此示例中,将当前会话的优先级更改为 LOWEST
。
select change_session_priority(30311, 'Lowest'); change_session_priority --------------------------------------------------------- Succeeded to change session priority. Changed session (pid:30311) priority to lowest. (1 row)
在此示例中,将当前会话的优先级更改为 HIGH
。
select change_session_priority(-1, 'High'); change_session_priority --------------------------------------------------------------------- Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. (1 row)
在以下示例中,创建存储过程以更改会话优先级。运行此存储过程的权限授予数据库用户 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;
然后,名为 test_user
的数据库用户调用该过程。
call sp_priority_low(pg_backend_pid()); result ------------------------------------------------------- Success. Change session (pid:13155) priority to low.