CS_RESOURCE_MANAGER-Package

Das Package CS_RESOURCE_MANAGER bietet eine Schnittstelle zum Auflisten und Aktualisieren von Nutzungsgruppenparametern und zum Zurücksetzen von Parametern auf Standardwerte.

Prozedur CLEAR_PENDING_AREA

Bei diesem Verfahren werden ausstehende Änderungen für den Ressourcenmanager gelöscht.

Syntax


CS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;

Prozedur CREATE_CONSUMER_GROUP

Diese Prozedur definiert Ressourcennutzungsgruppen.

Syntax

CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
   consumer_group  IN VARCHAR2,
   comment         IN VARCHAR2 DEFAULT NULL);

Parameter

Parameter Beschreibung

consumer_group

Name der Nutzungsgruppe

comment

Benutzerkommentar

Hinweise zur Verwendung

Sie können bestimmen, wie Sessions in Nutzungsgruppen platziert werden:

  • Zuweisung der Verbindungszeichenfolge: Geben Sie die CONSUMER_GROUP in der Datenbankverbindungszeichenfolge wie unten dargestellt an. Dieser Ansatz hat Vorrang vor dem Mapping und überschreibt alle definierten Mappings.

    (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(connect_data=(service_name=my_database_low.adb.oraclecloud.com)(CONSUMER_GROUP=OLTP_LOW))(security=(ssl_server_dn_match=yes)))
  • Zuordnungsregeln: Verwenden Sie die Unterprogramme set_consumer_group_mapping und set_consumer_group_mapping_pri, um Nutzungsgruppen basierend auf Attributen wie Benutzername oder Anwendungsname Sessions oder Anwendungen zuzuweisen.

Beispiele

BEGIN
  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_HIGH',
    comment        => 'Priority OLTP sessions');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_LOW',
    comment        => 'Background/low-priority OLTP');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'LH_BATCH',
    comment        => 'Batch / reporting workloads');  
END;
/

Prozedur CREATE_PENDING_AREA

Im Folgenden wird ein ausstehender Bereich erstellt, um Änderungen an Ressourcenmanagerobjekten vorzunehmen.

Die ausstehende Fläche kann als Kratzbereich für Planschemaänderungen betrachtet werden. Der Administrator erstellt diesen ausstehenden Bereich, nimmt bei Bedarf Änderungen vor, validiert diese möglicherweise und erst nach Abschluss der Weiterleitung werden diese Änderungen aktiv.

Syntax

CS_RESOURCE_MANAGER.CREATE_PENDING_AREA;

Hinweise zur Verwendung

Sie können jederzeit das aktuelle Plangeschema mit Ihren Änderungen anzeigen, während der ausstehende Bereich aktiv ist, indem Sie aus den entsprechenden Benutzeransichten auswählen. Weitere Informationen finden Sie unter Konfiguration und Status von Database Resource Manager anzeigen.

Sie können den Bereich "Ausstehend" jederzeit löschen, wenn Sie die aktuellen Änderungen stoppen möchten. Sie können auch die Prozedur VALIDATE aufrufen, um zu bestätigen, ob die vorgenommenen Änderungen gültig sind. Sie müssen Ihre Änderungen nicht in einer bestimmten Reihenfolge vornehmen, um eine konsistente Gruppe von Einträgen beizubehalten. Diese Prüfungen werden auch implizit durchgeführt, wenn der ausstehende Bereich weitergeleitet wird.

Hinweis

Oracle lässt "verwaiste" Nutzungsgruppen zu (d.h. Nutzungsgruppen, die keine Plananweisungen haben, die auf sie verweisen). Dies ist in der Erwartung, dass ein Administrator möglicherweise eine Nutzungsgruppe erstellen möchte, die derzeit nicht verwendet wird, aber in Zukunft verwendet wird.
Bei Ressourcenplänen müssen die folgenden Regeln eingehalten werden. Sie werden bei jeder Ausführung der Validierungs- oder Weiterleitungsprozeduren geprüft:
  • Kein Planschema darf Schleifen enthalten.
  • Alle Pläne und Nutzungsgruppen, auf die in Plananweisungen verwiesen wird, müssen vorhanden sein.
  • Alle Pläne müssen über Plananweisungen verfügen, die sich entweder auf Pläne oder Nutzungsgruppen beziehen.
  • Alle Prozentsätze auf einer bestimmten Ebene dürfen nicht größer als 100 für die Hervorhebungsmethode für die Ressourcenzuweisung sein.
  • Es kann kein Plan gelöscht werden, der derzeit von einer aktiven Instanz als oberster Plan verwendet wird.
  • Es können nicht mehr als 28 Planrichtlinien aus einem bestimmten Plan stammen (d.h. kein Plan kann mehr als 28 Kinder haben).
  • In einem aktiven Plangeschema dürfen nicht mehr als 28 Nutzungsgruppen vorhanden sein.
  • Pläne und Nutzungsgruppen verwenden denselben Namespace. Daher darf kein Plan denselben Namen wie jede Nutzungsgruppe haben.
  • In einem aktiven Planschema muss irgendwo eine Plananweisung für OTHER_GROUPS vorhanden sein. Dadurch wird sichergestellt, dass einer Session, die nicht vom aktuell aktiven Plan abgedeckt wird, Ressourcen zugewiesen werden, wie in der Anweisung OTHER_GROUPS angegeben.

Wenn eine der oben genannten Regeln verletzt wird, wenn sie von den Prozeduren VALIDATE oder SUBMIT geprüft wird, wird eine informative Fehlermeldung zurückgegeben. Sie können dann Änderungen vornehmen, um ein oder mehrere Probleme zu beheben und die Validierungs- oder Weiterleitungsverfahren erneut auszustellen.

Prozedur CREATE_PLAN

Im Folgenden werden Einträge erstellt, die Ressourcenpläne definieren.

Syntax

CS_RESOURCE_MANAGER.CREATE_PLAN (
   plan                       IN   VARCHAR2, 
   comment                    IN   VARCHAR2 DEFAULT NULL);

Parameter

Parameter Beschreibung

plan

Name des Ressourcenplans

comment

Benutzerkommentar

Beispiel

BEGIN
  CS_RESOURCE_MANAGER.CREATE_PLAN(
    plan    => 'OLTP_LH_PLAN',
    comment => 'Split resources between OLTP and Lakehouse workload types');
END;
/

Prozedur CREATE_PLAN_DIRECTIVE

Mit diesem Verfahren werden Ressourcenplananweisungen erstellt.

Syntax

CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
   plan                          IN VARCHAR2, 
   consumer_group                IN VARCHAR2, 
   comment                       IN VARCHAR2 DEFAULT NULL, 
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,    
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

Parameter

Parameter Beschreibung

plan

Name des Ressourcenplans

consumer_group

Name der Nutzungsgruppe

comment

Kommentar für die Plananweisung

shares

Anteil der Ressourcenzuweisung für die Nutzungsgruppe. Shares bestimmen, wie viel CPU- und I/O-Ressource eine Nutzungsgruppe relativ zu anderen Nutzungsgruppen erhält. Beispiel: Eine Nutzungsgruppe mit einem Anteil von 2 erhält das Doppelte der CPU- und I/O-Ressourcen als eine Nutzungsgruppe mit einem Anteil von 1.

Wenn Sie keine Shares für eine Nutzungsgruppe in Ihrem Plan angeben, wird der Share dieser Nutzungsgruppe auf 1 gesetzt.

utilization_limit

Ressourcenlimits, die bestimmen, wie viele CPU- und I/O-Ressourcen eine Nutzungsgruppe maximal abrufen kann.

switch_action

Maßnahmen, die zu ergreifen sind, wenn die in den Richtlinien festgelegten Grenzen erreicht werden. Gültige Werte sind cancel_sql, kill_session oder ein Nutzungsgruppenname, zu dem gewechselt werden soll.

cpu_time_limit

CPU-Zeit (in Sekunden), die eine Session ausführen kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_megabytes_limit

Menge an I/O (in MB), die eine Session ausgeben kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_reqs_limit

Anzahl der I/O-Anforderungen, die eine Session ausgeben kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_logical_limit

Anzahl der logischen I/Os, die die mit switch_action angegebene Aktion auslösen.

elapsed_time_limit

Verstrichene Zeit (in Sekunden), die die von switch_action angegebene Aktion auslöst.

max_idle_time

Anzahl der Sekunden, die eine Session inaktiv sein kann, bevor die Session beendet wird. Der Standardwert ist NULL, d.h. unbegrenzt.

max_idle_blocker_time

Maximale Zeit in Sekunden, die eine Session inaktiv sein kann, bevor die Session beendet wird, wenn die Session eine Sperre oder Ressource hält, die von anderen Sessions benötigt wird.

active_session_limit

Maximale Anzahl von Sessions, die gleichzeitig einen aktiven Aufruf haben können.

active_session_timeout

Angegebene Zeit (in Sekunden), nach der ein Aufruf in der inaktiven Sessionqueue (wartet auf Ausführung) wegen Timeout abgebrochen wird. Der Standardwert ist NULL, d.h. unbegrenzt.

parallel_degree_limit

Gibt ein Limit für den Parallelitätsgrad für jeden Vorgang an. Der Standardwert ist NULL, d.h. unbegrenzt. Verwenden Sie den Wert 1, wenn ein Arbeitsvorgang seriell sein soll.

concurrency_limit

Legt die Nebenläufigkeitsebene und damit den Parallelitätsgrad (DOP) fest. Es kann die DOP 1 machen.

session_pga_limit

Maximale Größe der nicht optimierbaren PGA (in MB), die eine Session in dieser Nutzungsgruppe zuweisen kann, bevor sie beendet wird. NULL (Standard) gibt keinen Grenzwert an.

SQL-Vorgänge, die optimierbare PGA zuweisen (Operationen, die temporären Speicherplatz verwenden können), werden nicht von diesem Grenzwert gesteuert.

parallel_queue_timeout

Gibt die Zeit (in Sekunden) an, die eine parallele Anweisung in der Queue der parallelen Anweisung der Nutzungsgruppe verbleiben kann, bevor sie entfernt und mit einem Fehler beendet wird (ORA- 07454).

parallel_queue_timeout_action

Gibt die Aktion an, die ausgeführt werden soll, wenn eine parallele Anweisung aus der Queue entfernt wird. Grund: parallel_queue_timeout.

Folgende Werte sind verfügbar:
  • CANCEL: Die parallele Anweisung wird mit dem Fehler ORA-7454 beendet
  • RUN: Die SQL-Anweisung wird sofort ausgeführt und kann heruntergestuft werden, wenn parallele Server nicht verfügbar sind.

Hinweise zur Verwendung

  • Sie können keine Plananweisungen für die vordefinierten Standardpläne mit der autonomen KI-Datenbank erstellen, d.h. DWCS_PLAN und OLTP_PLAN.
  • Alle Parameter mit Ausnahme der Freigaben werden standardmäßig auf NULL gesetzt.
  • Ein Fehler wird ausgelöst, wenn parallel_queue_timeout angegeben ist, parallel_queue_timeout_action jedoch nicht angegeben ist.

Beispiele

BEGIN

  -- High-priority OLTP gets 8 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_HIGH',
    comment               => 'OLTP high priority',
    shares                => 8,
    parallel_degree_limit => 1
  );

  -- Lower-priority OLTP gets 4 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_LOW',
    comment               => 'OLTP low priority',
    shares                => 2,
    parallel_degree_limit => 1
  );

  -- Lakehouse / batch gets 4 shares and the degree of parallelism is capped to 4.
  -- If a parallel SQL statement waits in the queue for more than 60 seconds, it will be canceled.
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                          => 'OLTP_LH_PLAN',
    consumer_group                => 'LH_BATCH',
    comment                       => 'Lakehouse/reporting workloads',
    shares                        => 4,
    parallel_degree_limit         => 4,     -- cap DOP within this group (adjust as needed)
    parallel_queue_timeout        => 60,
    parallel_queue_timeout_action => 'CANCEL'
  );

  -- Catch-all for anything unmapped; sessions that are not mapped to a consumer group get 1 CPU/IO share and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OTHER_GROUPS',
    comment               => 'Catch-all for unmapped sessions',
    shares                => 1,
    parallel_degree_limit => 1
  );
END;
/

Prozedur DELETE_CONSUMER_GROUP

Mit dieser Prozedur werden Ressourcennutzungsgruppen gelöscht.

Syntax

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group IN VARCHAR2);

Parameter

Parameter Beschreibung

consumer_group

Name der zu löschenden Consumer-Gruppe.

Hinweis

Sie können keine vordefinierten Nutzungsgruppen löschen, die Autonomous Database enthalten, d.h. TPURGENT, TP, HIGH, MEDIUM und LOW.

Beispiele

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group ==> <consumer_group_name>);

Prozedur DELETE_PLAN

Bei diesem Verfahren werden der angegebene Plan sowie alle Plananweisungen gelöscht, auf die er sich bezieht.

Syntax

CS_RESOURCE_MANAGER.DELETE_PLAN ( 
  plan    IN VARCHAR2,
  cascade IN BOOLEAN DEFAULT FALSE); 

Parameter

Parameter Beschreibung

plan

Name des zu löschenden Ressourcenplans.

Hinweis

Vordefinierte Pläne mit Autonomous Database, d.h. DWCS_PLAN und OLTP_PLAN, können nicht gelöscht werden.
cascade

Kennzeichen, das angibt, ob der angegebene Plan und alle untergeordneten Elemente (Plananweisungen, Unterpläne, Nutzungsgruppen) gelöscht werden sollen. Obligatorische Objekte und Anweisungen werden nicht gelöscht. Der Standardwert ist false.

Wenn bei "cascade ON" ein Fehler bei DELETE_PLAN auftritt, wird der Vorgang zurückgesetzt, und es wird nichts gelöscht.

Beispiel

CS_RESOURCE_MANAGER.DELETE_PLAN ( 
  plan    ==> <plan_name>);

Prozedur DELETE_PLAN_DIRECTIVE

Mit diesem Verfahren werden Ressourcenplananweisungen gelöscht.

Syntax

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan              IN VARCHAR2, 
   consumer_group    IN VARCHAR2);

Parameter

Parameter Beschreibung

plan

Name des Ressourcenplans.

Hinweis

Sie können keine Plananweisungen für die vordefinierten Standardpläne löschen, die mit Autonomous Database, d.h. DWCS_PLAN und OLTP_PLAN, geliefert werden.
consumer_group Name der Nutzungsgruppe.

Beispiel

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan            => <plan_name>, 
   consumer_group  => <consumer_group_name>);

Funktion LIST_CURRENT_RULES

Diese Funktion gibt die aktuellen Einstellungen für den Standardplan zurück.

Hinweis

LIST_CURRENT_RULES kann nicht zum Anzeigen der Einstellungen für benutzerdefinierte Pläne verwendet werden. Wenn Sie benutzerdefinierte Pläne verwenden, können Sie Ihre Einstellungen mit den DBRM-Ansichten anzeigen.

Syntax

CS_RESOURCE_MANAGER.LIST_CURRENT_RULES
   RETURN TABLE;

Beispiel

SELECT * FROM CS_RESOURCE_MANAGER.LIST_CURRENT_RULES();

CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM 
-------------- ------------------ ------------------ ------ ----------------- --------------------- 
HIGH                                                      4                 3                     3 
MEDIUM                                                    2                 2                     9 
LOW                                                       1               900                     1 

Funktion LIST_DEFAULT_RULES

Diese Funktion gibt die Standardwerte für alle Nutzungsgruppen zurück.

Syntax

CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES
  RETURN TABLE;

Hinweis zur Verwendung

  • Der Policy-Wert für den parallelen Grad ist standardmäßig MANUAL für die Nutzungsgruppe TPURGENT. Die Funktion CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES zeigt keinen Wert für den Standardwert für die DEGREE_OF_PARALLELISM für die Nutzungsgruppe TPURGENT an.

Beispiel

SELECT * FROM CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES();
CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM 
-------------- ------------------ ------------------ ------ ----------------- --------------------- 
HIGH                            0                  0      4                 3                     1 
MEDIUM                          0                  0      2                 1                     1 
LOW                             0                  0      1               300                     1 
TP                              0                  0      8               300                     1 
TPURGENT                        0                  0     12               300                       

Prozedur REVERT_TO_DEFAULT_VALUES

Bei diesem Verfahren werden die Default-Resource Manager-Planeigenschaften auf Standardwerte zurückgesetzt.

Hinweis

Sie können diese Prozedur nicht mit benutzerdefinierten Plänen verwenden und sie kann nur dazu verwendet werden, die Änderungen an den Standard-Resource-Manager-Plänen, die mit Autonomous Database geliefert werden, rückgängig zu machen, d.h. DWCS_PLAN und OLTP_PLAN.

Syntax

CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
   consumer_group         IN VARCHAR2,
   shares                 IN BOOLEAN   DEFAULT FALSE,
   concurrency_limit      IN BOOLEAN   DEFAULT FALSE);

Parameter

Parameter Beschreibung

consumer_group

Gibt die wiederherzustellende Nutzungsgruppe an.

Gültige Werte sind: HIGH, MEDIUM, LOW, TP oder TPURGENT.

shares

Wenn der Wert TRUE lautet, setzen Sie Shares für den Service auf den Standardwert zurück.

concurrency_limit

Wenn der Wert TRUE lautet, setzen Sie concurrency_limit für den Service auf den Standardwert zurück. Wenn Sie die concurrency_limit zurücksetzen, werden sowohl die Werte concurrency_limit als auch degree_of_parallelism auf ihre Standardwerte gesetzt.

Beispiele

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'MEDIUM', 
      concurrency_limit => TRUE);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'HIGH', 
      shares => TRUE);
END;
/

Prozedur SET_CONSUMER_GROUP_MAPPING

Diese Prozedur fügt Einträge hinzu, löscht oder ändert Einträge, die Sessions Nutzungsgruppen zuordnen, basierend auf den Anmelde- und Laufzeitattributen der Session.

Syntax

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
   attribute        IN VARCHAR2, 
   value            IN VARCHAR2, 
   consumer_group   IN VARCHAR2 DEFAULT NULL);

Parameter

Parameter Beschreibung

attribute

Zuordnendes oder zu änderndes Attribut. Es kann eine der aufgeführten Konstanten sein.

value

Abgleichsattributwert. Dazu gehören sowohl absolute als auch reguläre Ausdrücke.

consumer_group

Name der zugeordneten Nutzungsgruppe oder NULL, um eine Zuordnung zu löschen.

Hinweise zur Verwendung

  • Wenn für das angegebene Attribut und den angegebenen Wert keine Zuordnung vorhanden ist, wird eine Zuordnung zur angegebenen Nutzungsgruppe erstellt. Wenn für das angegebene Attribut und den angegebenen Wert bereits eine Zuordnung vorhanden ist, wird die zugeordnete Nutzungsgruppe in die angegebene aktualisiert. Wenn das Argument consumer_group NULL lautet, wird jede Zuordnung aus dem angegebenen Attribut und Wert gelöscht.
  • Das Unterprogramm unterstützt einfache reguläre Ausdrücke für den Wertparameter. Es implementiert die gleiche Semantik wie der SQL-Operator "LIKE". Insbesondere wird '%' als Platzhalter mit mehreren Zeichen und '_' als Platzhalter mit einem einzelnen Zeichen verwendet. Das Zeichen '\' kann verwendet werden, um die Platzhalter zu entkommen. Beachten Sie, dass Platzhalter nur verwendet werden können, wenn das Attribut eines der folgenden Attribute ist:
    • CLIENT_OS_USER
    • CLIENT_PROGRAM
    • CLIENT_MACHINE
    • MODULE_NAME
    • MODULE_NAME_ACTION
    • SERVICE_MODULE
    • SERVICE_MODULE_ACTION
  • Vergleiche der Nutzungsgruppenzuordnung für CS_RESOURCE_MANAGER.CLIENT_PROGRAM werden durchgeführt, indem das @-Zeichen und die folgenden Zeichen aus V$SESSION.PROGRAM entfernt werden, bevor es mit dem angegebenen CLIENT_PROGRAM-Wert verglichen wird.
  • Mit Attributen wie Benutzername oder Anwendungsname können Sie bestimmen, wie Sessions in einer Nutzungsgruppe platziert werden, wie im obigen Beispiel gezeigt.

Beispiele

BEGIN
  -- Map schema APP_USER to OLTP_HIGH
  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'APP_USER',
    consumer_group => 'OLTP_HIGH');

  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'LH_USER',
    consumer_group => 'LH_BATCH');
END;
/

Prozedur SET_CONSUMER_GROUP_MAPPING_PRI

Zur Zuordnung der Session zu einer Nutzungsgruppe können mehrere Attribute einer Session verwendet werden. In diesem Verfahren werden die Attributzuordnungen priorisiert.

Syntax

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING_PRI(
   explicit               IN NUMBER, 
   oracle_user            IN NUMBER, 
   service_name           IN NUMBER,  
   client_program         IN NUMBER, 
   module_name            IN NUMBER, 
   module_name_action     IN NUMBER,
   client_id              IN NUMBER DEFAULT 11);

Parameter

Parameter Beschreibung

explicit

Priorität der expliziten Zuordnung.

oracle_user

Priorität der Zuordnung von Oracle-Benutzernamen.

service_name

Priorität der Zuordnung des Client Service-Namens.

client_program

Priorität der Clientprogrammzuordnung.

module_name

Priorität der Namenszuordnung des Anwendungsmoduls.

module_name_action

Priorität des Anwendungsmodulsnamens und der Aktionszuordnung.

client_id

Client-ID.

Hinweise zur Verwendung

  • Bei dieser Prozedur müssen Sie das Pseudo-Attribut explizit als Argument aufnehmen. Sie muss auf 1 gesetzt werden. Dies bedeutet, dass explizite Switches der Nutzungsgruppe die höchste Priorität haben. Das Wechseln der Nutzungsgruppe mit DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUP hat Vorrang vor den Nutzungsgruppenzuordnungen.
  • Jeder Prioritätswert muss eine eindeutige Ganzzahl von 1 bis 11 sein. Zusammen legen sie eine Reihenfolge fest, in der 1 die höchste Priorität und 11 die niedrigste Priorität hat.
  • Mit Attributen wie Benutzername oder Anwendungsname können Sie bestimmen, wie Sessions in einer Nutzungsgruppe platziert werden. Ein Beispiel finden Sie unter Schritt 4: Nutzungsgruppenzuordnungen erstellen.

Prozedur SUBMIT_PENDING_AREA

Im Folgenden werden ausstehende Änderungen für den Ressourcenmanager weitergeleitet. Sie löscht den Bereich "Ausstehend", nachdem die Änderungen validiert und festgeschrieben wurden (falls gültig).

Hinweis

Ein Aufruf von SUBMIT_PENDING_AREA kann auch dann fehlschlagen, wenn VALIDATE_PENDING_AREA erfolgreich ist. Dies kann auftreten, wenn ein Plan, der gelöscht wird, nach dem Aufruf von VALIDATE_PENDING_AREA von einer Instanz geladen wird, jedoch vor dem Aufruf von SUBMIT_PENDING_AREA.

Syntax

CS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;

Prozedur UPDATE_PLAN_DIRECTIVE

Mit dieser Prozedur können Sie vordefinierte Standardpläne aktualisieren, die mit der autonomen KI-Datenbank (DWCS_PLAN und OLTP_PLAN) für eine angegebene Nutzungsgruppe geliefert werden.

Hinweis

Mit diesem Verfahren können Sie die Einstellungen für benutzerdefinierte Pläne nicht aktualisieren. Um benutzerdefinierte Planattribute zu aktualisieren, verwenden Sie die Prozedur UPDATE_PLAN_DIRECTIVE_ADV.

Syntax

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
   consumer_group         IN VARCHAR2,
   io_megabytes_limit     IN NUMBER   DEFAULT NULL,
   elapsed_time_limit     IN NUMBER   DEFAULT NULL,
   shares                 IN NUMBER   DEFAULT NULL,
   concurrency_limit      IN NUMBER   DEFAULT NULL);

Parameter

Parameter Beschreibung

consumer_group

Gibt die zu aktualisierende Nutzungsgruppe an.

Gültige Werte sind: HIGH, MEDIUM, LOW, TP oder TPURGENT.

io_megabytes_limit

Gibt die maximale Anzahl Megabyte an I/O an, die ein SQL-Vorgang ausgeben kann.

Geben Sie einen NULL-Wert an, um den Grenzwert zu löschen.

elapsed_time_limit

Gibt die maximale Zeit in Sekunden an, die ein SQL-Vorgang ausgeführt werden kann.

Geben Sie einen NULL-Wert an, um den Grenzwert zu löschen.

shares

Gibt den Share-Wert an. Eine höhere Anzahl von Shares im Vergleich zu anderen Nutzungsgruppen erhöht die CPU- und I/O-Priorität der Nutzungsgruppe.

concurrency_limit

Gibt die maximale Anzahl gleichzeitiger SQL-Anweisungen an, die ausgeführt werden können.

Dieser Parameter ist nur mit der Nutzungsgruppe MEDIUM gültig.

Hinweise zur Verwendung

  • Wenn eine SQL-Anweisung im angegebenen Service mehr als den angegebenen Laufzeitgrenzwert (elapsed_time_limit) oder mehr I/O als den angegebenen Betrag (io_megabytes_limit) ausführt, wird die SQL-Anweisung beendet.

  • Wenn der Parameter concurrency_limit angegeben wird, ist der einzige gültige Wert für consumer_group MEDIUM.

Beispiele

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH', 
      shares => 8);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'MEDIUM', 
      shares => 2);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'LOW', 
      shares => 1);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH', 
      io_megabytes_limit => null, 
      elapsed_time_limit => null);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
     consumer_group => 'MEDIUM', 
     concurrency_limit => 2);
END;
/

Prozedur UPDATE_PLAN_DIRECTIVE_ADV

Unter diesem Thema wird beschrieben, wie Sie den benutzerdefinierten Resource Manager-Plan für eine bestimmte Nutzungsgruppe aktualisieren.

Hinweis

Sie können dieses Verfahren nicht verwenden, um vordefinierte Standardpläne zu aktualisieren, die mit Autonomous Database, d.h. DWCS_PLAN und OLTP_PLAN, geliefert werden. Um einen vordefinierten Standardressourcenplan zu aktualisieren, verwenden Sie die Prozedur UPDATE_PLAN_DIRECTIVE.

Syntax

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE_ADV (
   plan                          IN VARCHAR2 DEFAULT NULL, 
   consumer_group                IN VARCHAR2, 
   comment                       IN VARCHAR2 DEFAULT NULL, 
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,    
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

Parameter

Parameter Beschreibung

plan

Name des Ressourcenplans.

consumer_group

Name der Nutzungsgruppe.

comment

Kommentar für die Planrichtlinie.

shares

Anteil der Ressourcenzuweisung für die Nutzungsgruppe. Shares bestimmen, wie viel CPU- und I/O-Ressource eine Nutzungsgruppe relativ zu anderen Nutzungsgruppen erhält. Beispiel: Eine Nutzungsgruppe mit einem Anteil von 2 erhält das Doppelte der CPU- und I/O-Ressourcen als eine Nutzungsgruppe mit einem Anteil von 1.

Wenn Sie keine Shares für eine Nutzungsgruppe in Ihrem Plan angeben, wird der Share dieser Nutzungsgruppe auf 1 gesetzt.

utilization_limit

Ressourcenlimits, die bestimmen, wie viele CPU- und I/O-Ressourcen eine Nutzungsgruppe maximal abrufen kann.

switch_action

Maßnahmen, die zu ergreifen sind, wenn die in den Richtlinien festgelegten Grenzen erreicht werden. Gültige Werte sind cancel_sql, kill_session oder ein Nutzungsgruppenname, zu dem gewechselt werden soll.

cpu_time_limit

CPU-Zeit (in Sekunden), die eine Session ausführen kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_megabytes_limit

Menge an I/O (in MB), die eine Session ausgeben kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_reqs_limit

Anzahl der I/O-Anforderungen, die eine Session ausgeben kann, bevor eine Aktion ausgeführt wird. Der Standardwert ist NULL, d.h. unbegrenzt.

io_logical_limit

Anzahl der logischen I/Os, die die mit switch_action angegebene Aktion auslösen.

elapsed_time_limit

Verstrichene Zeit (in Sekunden), die die von switch_action angegebene Aktion auslöst.

max_idle_time

Anzahl der Sekunden, die eine Session inaktiv sein kann, bevor die Session beendet wird. Der Standardwert ist NULL, d.h. unbegrenzt.

max_idle_blocker_time

Maximale Zeit in Sekunden, die eine Session inaktiv sein kann, bevor die Session beendet wird, wenn die Session eine Sperre oder Ressource hält, die von anderen Sessions benötigt wird.

active_session_limit

Maximale Anzahl von Sessions, die gleichzeitig einen aktiven Aufruf haben können.

active_session_timeout

Angegebene Zeit (in Sekunden), nach der ein Aufruf in der inaktiven Sessionqueue (wartet auf Ausführung) wegen Timeout abgebrochen wird. Der Standardwert ist NULL, d.h. unbegrenzt.

parallel_degree_limit

Gibt ein Limit für den Parallelitätsgrad für jeden Vorgang an. Der Standardwert ist NULL, d.h. unbegrenzt. Verwenden Sie den Wert 1, wenn ein Arbeitsvorgang seriell sein soll.

concurrency_limit

Legt die Nebenläufigkeitsebene und damit den Parallelitätsgrad (DOP) fest. Es kann die DOP 1 machen.

session_pga_limit

Maximale Größe der nicht optimierbaren PGA (in MB), die eine Session in dieser Nutzungsgruppe zuweisen kann, bevor sie beendet wird. NULL (Standard) gibt keinen Grenzwert an.

SQL-Vorgänge, die optimierbare PGA zuweisen (Operationen, die temporären Speicherplatz verwenden können), werden nicht von diesem Grenzwert gesteuert.

parallel_queue_timeout

Gibt die Zeit (in Sekunden) an, die eine parallele Anweisung in der Queue der parallelen Anweisung der Nutzungsgruppe verbleiben kann, bevor sie entfernt und mit einem Fehler beendet wird (ORA- 07454).

parallel_queue_timeout_action

Gibt die Aktion an, die ausgeführt werden soll, wenn eine parallele Anweisung aus der Queue entfernt wird. Grund: parallel_queue_timeout.

Folgende Werte sind verfügbar:
  • CANCEL: Die parallele Anweisung wird mit dem Fehler ORA-7454 beendet
  • RUN: Die SQL-Anweisung wird sofort ausgeführt und kann heruntergestuft werden, wenn parallele Server nicht verfügbar sind.

Hinweise zur Verwendung

  • Alle Parameter mit Ausnahme der Freigaben werden standardmäßig auf NULL gesetzt.
  • Ein Fehler wird ausgelöst, wenn parallel_queue_timeout_action angegeben ist, parallel_queue_timeout jedoch nicht angegeben ist.

Prozedur VALIDATE_PENDING_AREA

Dieses Verfahren validiert ausstehende Änderungen für den Ressourcenmanager.

Syntax


CS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;