CHANGE_SESSION_PRIORITY
CHANGE_SESSION_PRIORITY를 통해 수퍼유저는 시스템 내 모든 세션의 우선 순위를 즉시 변경할 수 있습니다. 하나의 세션, 사용자 또는 쿼리만 CRITICAL
우선 순위로 실행할 수 있습니다.
구문
CHANGE_SESSION_PRIORITY(pid, priority)
인수
- pid
-
우선 순위가 변경된 세션의 프로세스 식별자입니다.
-1
값은 현재 세션을 참조합니다.INTEGER
값이 필요합니다. - 우선순위
-
세션에 지정할 새로운 우선 순위입니다. 이 인수는 값이
CRITICAL
,HIGHEST
,HIGH
,NORMAL
,LOW
또는LOWEST
인 문자열이어야 합니다.
반환 타입
None
예시
현재 세션을 처리하는 서버 프로세스의 프로세스 식별자를 반환하려면 다음 예제를 사용합니다.
SELECT pg_backend_pid();
+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
이 예제에서는 현재 세션의 우선 순위는 LOWEST
로 변경됩니다.
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');
+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
이 예제에서는 현재 세션의 우선 순위는 HIGH
로 변경됩니다.
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');
+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
세션 우선 순위를 변경하는 저장 프로시저를 만들려면 다음 예제를 사용합니다. 이 저장 프로시저를 실행할 수 있는 권한은 데이터베이스 사용자 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. | +------------------------------------------------------+