CS_SESSION-Package
Das Package CS_SESSION stellt eine Schnittstelle bereit, über die der Datenbankservice und die Nutzungsgruppe der vorhandenen Session gewechselt werden können.
Wenn eine Verbindung mit einer autonomen KI-Datenbank hergestellt wird, wird dieser Session eine Nutzungsgruppe zugewiesen. Beispiel: Eine Session kann mit einer Verbindung zum LOW-Service einer autonomen KI-Datenbank erstellt werden. Sie können die Nutzungsgruppe wechseln, z.B. von LOW zu HIGH. Das Package CS_SESSION stellt eine API für den Wechsel bereit. Weitere Informationen finden Sie unter Datenbankservicename für autonome KI-Datenbank.
Die Nutzungsgruppen bestimmen Parallelität und Parallelitätsgrad (DOP). Beispiel: Anweisungen zu einer Verbindung, die mit dem LOW-Datenbankservice hergestellt wurde, werden seriell ausgeführt. Anweisungen zu einer Verbindung mit dem HIGH-Datenbankservice werden parallel ausgeführt. Wenn Sie eine Workload haben, die serielle Anweisungsverarbeitung erfordert, indem Sie für einige Anweisungen zu einer HIGH-Nutzungsgruppe wechseln, können Sie mit dem Package CS_SESSION wechseln.
- Prozedur SWITCH_SERVICE
Diese Prozedur wechselt den Datenbankservice und die Nutzungsgruppe der aktuellen Session.
Übergeordnetes Thema: Von autonomer KI-Datenbank bereitgestellte Packagereferenz
Prozedur SWITCH_SERVICE
Diese Prozedur wechselt den Datenbankservice und die Nutzungsgruppe der aktuellen Session.
Syntax
CS_SESSION.SWITCH_SERVICE(service_name IN varchar2);
Parameter
| Parameter | Beschreibung |
|---|---|
service_name |
Gibt die zu aktualisierende Nutzungsgruppe an. Gültige Werte sind: |
Hinweise zur Verwendung
Wenn die Prozedur aufgerufen wird, wechselt sie die Session auf den angegebenen Service und die zugehörige Nutzungsgruppe. Wenn der angegebene Service nicht in dieser Datenbank vorhanden ist, wird eine Fehlermeldung angezeigt. Beispiel: Wenn Sie "TP" als Servicenamen für eine Lakehouse-Workload angeben, gibt der Fehler an, dass es sich nicht um einen gültigen Servicenamen handelt. Es wird kein Fehler gemeldet, wenn der aktuelle Service und der angegebene Service identisch sind.
Die Prozedur setzt keine Sessionattribute zurück. Alles, was der Benutzer vor dem Aufrufen dieser Prozedur für seine Session festgelegt hat, wird unverändert fortgesetzt. Beispiel: Wenn ein Sessionparameter geändert wurde und die Session später zu einem anderen Service wechselte, bleibt der Parameterwert gleich.
Beispiel
BEGIN
CS_SESSION.SWITCH_SERVICE('HIGH');
END;
/
Sicherheit und Zugriff
Dem Benutzer ADMIN wird die Berechtigung EXECUTE auf CS_SESSION mit GRANT OPTION erteilt. Die Berechtigung wird auch DWROLE ohne GRANT OPTION erteilt.
Zusätzliche Sicherheitsbetrachtungen
Wenn einem Benutzer EXECUTE-Berechtigungen für diese Prozedur erteilt werden und dieser Benutzer nicht zu einem bestimmten Service wechseln soll, können Sie den Vorgang mit einem AFTER SET CONTAINER-Trigger blockieren. Dies wird durch Erstellen eines AFTER SET CONTAINER-Triggers erreicht.
CREATE OR REPLACE TRIGGER SESS_SWITCH
AFTER SET CONTAINER ON DATABASE
BEGIN
IF SYS_CONTEXT('USERENV','SESSION_USER') = 'USER' and
SYS_CONTEXT('USERENV','SERVICE_NAME') = 'serviceexample_low.adwc.oraclecloud.com'
THEN
NULL;
ELSE
RAISE_APPLICATION_ERROR(-20001, 'Denied! You are not allowed to switch service in the database');
END IF;
END;
/Fehlermeldungen
In der folgenden Tabelle werden Ausnahmen für CS_SESSION beschrieben.
| Fehler | Nachricht | Ursache |
|---|---|---|
| 20.001 | Ungültiger Service-Name. Gültige Werte sind HIGH, MEDIUM, LOW, TP, TPURGENT. | Es wurde ein anderer Wert als "HIGH", "MEDIUM", "LOW", "TP" oder "TPURGENT" angegeben. |
| 20.002 | Servicewechsel nicht erfolgreich. | Wechsel zum neuen Service nicht erfolgreich. |
Übergeordnetes Thema: CS_SESSION Package