CHANGE_SESSION_PRIORITY - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CHANGE_SESSION_PRIORITY

CHANGE_SESSION_PRIORITY 讓超級使用者可以立即變更系統中任何工作階段的優先順序。只有一個工作階段、使用者或查詢可以使用優先順序 CRITICAL 執行。

Syntax (語法)

CHANGE_SESSION_PRIORITY(pid, priority)

引數

pid

要變更其優先順序之工作階段的程序識別符。值 -1 表示目前工作階段。

priority

要指派給工作階段的新優先順序。此引數必須是具備CRITICALHIGHESTHIGHNORMALLOW, 或LOWEST

傳回類型

None (無)

範例

下列範例傳回處理目前工作階段之伺服器處理程序的程序識別符。

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.