Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CHANGE_SESSION_PRIORITY
CHANGE_ SESSION _ PRIORITY memungkinkan pengguna super untuk segera mengubah prioritas sesi apa pun dalam sistem. Hanya satu sesi, pengguna, atau kueri yang dapat dijalankan dengan prioritasCRITICAL
.
Sintaks
CHANGE_SESSION_PRIORITY(pid, priority)
Argumen
- pid
-
Pengidentifikasi proses sesi yang prioritasnya diubah. Nilai
-1
mengacu pada sesi saat ini. MembutuhkanINTEGER
nilai. - prioritas
-
Prioritas baru yang akan ditugaskan ke sesi. Argumen ini harus berupa string dengan nilai
CRITICAL
,HIGHEST
,HIGH
,NORMAL
,LOW
, atauLOWEST
.
Jenis pengembalian
Tidak ada
Contoh
Untuk mengembalikan pengidentifikasi proses proses server yang menangani sesi saat ini, gunakan contoh berikut.
SELECT pg_backend_pid();
+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
Dalam contoh ini, prioritas diubah menjadi LOWEST
untuk sesi saat ini.
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');
+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
Dalam contoh ini, prioritas diubah menjadi HIGH
untuk sesi saat ini.
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');
+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
Untuk membuat prosedur tersimpan yang mengubah prioritas sesi, gunakan contoh berikut. Izin untuk menjalankan prosedur tersimpan ini diberikan kepada pengguna databasetest_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;
Kemudian pengguna database bernama test_user
memanggil prosedur.
CALL sp_priority_low(pg_backend_pid());
+------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+