Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CHANGE_SESSION_PRIORITY
CHANGE_ SESSION _ PRIORITY ermöglicht Superusern, die Priorität jeder Sitzung im System sofort zu ändern. Es kann immer nur eine Sitzung, ein Benutzer oder eine Abfrage mit der Priorität ausgeführt werden CRITICAL
.
Syntax
CHANGE_SESSION_PRIORITY(pid, priority)
Argumente
- pid
-
Die Prozess-ID der Sitzung, deren Priorität geändert wird. Der Wert
-1
bezieht sich auf die aktuelle Sitzung. Benötigt einenINTEGER
-Wert. - priority
-
Die neue Priorität, die der Sitzung zugewiesen werden soll. Bei diesem Argument muss es sich um eine Zeichenfolge mit dem Wert
CRITICAL
,HIGHEST
,HIGH
,NORMAL
,LOW
oderLOWEST
handeln.
Rückgabetyp
None
Beispiele
Verwenden Sie das folgende Beispiel, um die Prozess-ID des Serverprozesses zurückzugeben, der die aktuelle Sitzung verarbeitet.
SELECT pg_backend_pid();
+----------------+ | pg_backend_pid | +----------------+ | 30311 | +----------------+
In diesem Beispiel wird die Priorität der aktuellen Sitzung in LOWEST
geändert.
SELECT CHANGE_SESSION_PRIORITY(30311, 'Lowest');
+---------------------------------------------------------------------------------------+ | change_session_priority | +---------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority to lowest. | +---------------------------------------------------------------------------------------+
In diesem Beispiel wird die Priorität der aktuellen Sitzung in HIGH
geändert.
SELECT CHANGE_SESSION_PRIORITY(-1, 'High');
+-------------------------------------------------------------------------------------------------+ | change_session_priority | +-------------------------------------------------------------------------------------------------+ | Succeeded to change session priority. Changed session (pid:30311) priority from lowest to high. | +-------------------------------------------------------------------------------------------------+
Verwenden Sie das folgende Beispiel, um eine gespeicherte Prozedur zum Ändern der Priorität einer Sitzung zu erstellen. Die Berechtigung zum Ausführen dieser gespeicherten Prozedur wird dem Datenbankbenutzer erteilt 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;
Anschließend ruft der Datenbankbenutzer mit dem Namen test_user
die Prozedur auf.
CALL sp_priority_low(pg_backend_pid());
+------------------------------------------------------+ | result | +------------------------------------------------------+ | Success. Change session (pid:13155) priority to low. | +------------------------------------------------------+