DBMS_CACHE-Package

Das Package DBMS_CACHE erleichtert das automatische Caching für externe Tabellencaches in einer autonomen AI-Datenbankinstanz.

Zusammenfassung der DBMS_CACHE-Unterprogramme

In dieser Tabelle werden die Unterprogramme zusammengefasst, die im Package DBMS_CACHE enthalten sind.

Unterprogramm Beschreibung

CLEAR-Verfahren

Löscht alle externen Tabellencaches für einen angegebenen Benutzer.

Prozedur GET_GLOBAL_PROPERTY

Ruft externe Tabellen-Caching-Eigenschaften ab.

Prozedur GET_USER_PROPERTY

Ruft externe Tabellen-Caching-Eigenschaften für einen angegebenen Benutzer ab.

REFRESH-Verfahren

Aktualisiert alle externen Tabellencaches für einen angegebenen Benutzer.

Prozedur SET_GLOBAL_PROPERTY

Gibt die Voreinstellung für das externe Tabellen-Caching für alle Datenbankbenutzer an.

Prozedur SET_USER_PROPERTY

Gibt die Voreinstellung für das externe Tabellen-Caching für einen angegebenen Benutzer an.

CLEAR-Verfahren

Verwenden Sie die Prozedur DBMS_CACHE.CLEAR, um alle externen Tabellencaches für einen angegebenen Benutzer zu löschen.

Die Prozedur DBMS_CACHE.CLEAR löscht alle externen Tabellencaches und gibt den Speicherplatz frei, ähnlich wie der Befehl DROP für eine Datenbanktabelle.

Syntax

DBMS_CACHE.CLEAR (
    owner    IN   VARCHAR2
);

Parameter

Parameter Beschreibung

owner

Legt den Schemanamen fest.

Beispiel

BEGIN
 DBMS_CACHE.CLEAR (
    owner => 'SALES');                                                                
END;                                                                 
/

Hinweis zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um einen Cache zu löschen.

Prozedur GET_GLOBAL_PROPERTY

Die Prozedur DBMS_CACHE.GET_GLOBAL_PROPERTY ruft die Voreinstellungen für das externe Tabellen-Caching für alle Benutzer in der Datenbank ab. Diese Prozedur ist überladen.

Syntax

DBMS_CACHE.GET_GLOBAL_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_num  OUT  VARCHAR2);

DBMS_CACHE.GET_GLOBAL_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_str  OUT  VARCHAR2);

Parameter

Parameter Beschreibung

property_name

Gibt den Namen der Eigenschaft an.

Folgende gültige Werte sind für property_name verfügbar:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • MAX_REFRESH_WINDOW

  • AUTO_REFRESH_MODE

property_value_num

Ruft einen NUMBER-Wert für den angegebenen Eigenschaftsnamen ab.

property_value_str

Ruft einen STRING-Wert für den angegebenen Eigenschaftsnamen ab.

Beispiel

SET SERVEROUTPUT ON;
DECLARE
   cache_property NUMBER;
BEGIN
   DBMS_CACHE.GET_GLOBAL_PROPERTY (
      property_name  => 'MAX_CACHE_SIZE',
      property_value => cache_property
   );
 DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/

Hinweis zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um diese Prozedur ausführen zu können.

Prozedur SET_GLOBAL_PROPERTY

Verwenden Sie die Prozedur DBMS_CACHE.SET_GLOBAL_PROPERTY, um AUTO-Caching-Eigenschaften für alle Datenbankbenutzer festzulegen, einschließlich derjenigen, die das automatische Caching für die Datenbank aktivieren. Diese Prozedur ist überladen.

Standardmäßig ist das automatische Caching externer Tabellen deaktiviert. Um ihn zu aktivieren, setzen Sie die Cachegröße mit der Eigenschaft MAX_CACHE_SIZE oder MAX_CACHE_SIZE der Prozedur DBMS_CACHE.SET_GLOBAL_PROPERTY auf einen Wert ungleich Null. Dadurch wird das automatische Caching für die Datenbank global aktiviert.

Syntax


DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name      IN   VARCHAR2,
    property_value_num IN   NUMBER);

DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name      IN   VARCHAR2,
    property_value_str IN   VARCHAR2);

Parameter

Parameter Beschreibung

property_name

Gibt den Namen der Eigenschaft an.

Folgende gültige Werte sind für property_name verfügbar:
  • MAX_CACHE_PERCENT: Die Eigenschaft MAX_CACHE_PERCENT gibt den maximalen Prozentsatz der zugewiesenen Speicher-Quota eines Benutzers an, der für externe Tabellencaches verwendet werden kann.

  • MAX_CACHE_SIZE: Die Eigenschaft MAX_CACHE_SIZE gibt die maximale Speichermenge in Byte an, die ein Benutzer für externe Tabellencaches verwenden kann.

  • MAX_REFRESH_WINDOW: Die Eigenschaft MAX_REFRESH_WINDOW gibt das maximale Zeitfenster in Sekunden an, das zum Aktualisieren externer Tabellencaches zulässig ist.

  • AUTO_REFRESH_MODE: Gibt den Geltungsbereich an, in dem die Aktualisierung für AUTO-Caches ausgeführt wird.

    Folgende gültige Werte sind für AUTO_REFRESH_MODE verfügbar:
    • ALL: Alle vorhandenen AUTO-Caches in der Datenbank werden aktualisiert, und bei Bedarf werden neue Caches erstellt. Dies ist das Standardverhalten.

    • CURRENT: Es werden nur vorhandene Caches aktualisiert, es werden keine neuen Caches hinzugefügt.

    • NEW: Es werden nur neue Caches erstellt.

property_value_num

Stellt einen NUMBER-Wert für den angegebenen Eigenschaftsnamen bereit.

property_value_str

Stellt einen STRING-Wert für den angegebenen Eigenschaftsnamen bereit.

Beispiele

BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'MAX_CACHE_SIZE', 
    property_value_num  => 50);                                                                
END;                                                                 
/
BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'AUTO_REFRESH_MODE', 
    property_value_str  => 'NEW');                                                              
END;                                                                 
/
BEGIN
 DBMS_CACHE.SET_GLOBAL_PROPERTY (
    property_name       => 'MAX_REFRESH_WINDOW', 
    property_value_num  => 20);                                                              
END;                                                                 
/

Hinweise zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um diese Prozedur ausführen zu können.

  • Die Eigenschaft MAX_REFRESH_WINDOW gibt in Sekunden an, wie lange maximal externe Tabellencaches aktualisiert werden dürfen. Wenn die Aktualisierung den angegebenen Grenzwert überschreitet, wird die Cacheaktualisierung normal beendet, und alle verbleibenden zulässigen Caches werden für den nächsten Aktualisierungszyklus in die Queue gestellt.

  • Wenn Sie Caches mit der Prozedur DBMS_CACHE.REFRESH aktualisieren, hat der Prozedurparameter Vorrang vor der Eigenschaft AUTO_REFRESH_MODE.

    Weitere Informationen finden Sie unter Prozedur REFRESH.

REFRESH-Verfahren

Verwenden Sie die Prozedur DBMS_CACHE.REFRESH, um alle externen AUTO-Tabellencaches für einen angegebenen Benutzer zu aktualisieren.

Syntax

DBMS_CACHE.REFRESH (       
      owner          IN VARCHAR2,
      refresh_type   IN VARCHAR2 DEFAULT ALL
);

Parameter

Parameter Beschreibung

owner

Legt den Schemanamen fest.

refresh_type

Gibt die Aktualisierungsoption an.

Folgende gültige refresh_type-Werte sind verfügbar:
  • ALL: Alle vorhandenen AUTO-Caches für das angegebene Schema werden aktualisiert, und bei Bedarf werden neue Caches für den angegebenen Benutzer erstellt. Dies ist das Standardverhalten.

  • CURRENT: Es werden nur vorhandene Caches aktualisiert. Für den angegebenen Benutzer werden keine neuen Caches hinzugefügt.

  • NEW: Für den angegebenen Benutzer werden nur neue Caches erstellt.

Dieser Parameter ist optional und standardmäßig ALL.

Beispiel

BEGIN
    DBMS_CACHE.REFRESH (      
      owner          => 'SALES',
      refresh_type   => 'CURRENT');                                                                 
END;                                                                 
/

Hinweise zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um diese Prozedur ausführen zu können.

  • Wenn Sie keinen Wert für den Parameter refresh_type angeben, führt Oracle eine Aktualisierung basierend auf dem Wert auto_refresh_mode durch. Der Standardwert für auto_refresh_mode ist ALL.

  • Wenn die Eigenschaft MAX_REFRESH_WINDOW festgelegt ist, versucht Oracle, eine Aktualisierung im angegebenen Fenster durchzuführen. Wenn die Aktualisierung den angegebenen Grenzwert überschreitet, wird die Cacheaktualisierung normal beendet, und alle verbleibenden zulässigen Caches werden für den nächsten Aktualisierungszyklus in die Queue gestellt.

  • Alle AUTO-Caches in der Datenbank werden mit einem Räumungsalgorithmus verwaltet, der dem LRU (Least Recently Used) ähnelt. Unter Speicherplatzdruck werden Caches, auf die zuletzt zugegriffen wurde, während des Aktualisierungsprozesses automatisch gelöscht, um den Speicherplatz freizugeben.

Prozedur GET_USER_PROPERTY

Verwenden Sie die Prozedur DBMS_CACHE.GET_USER_PROPERTY, um automatische Caching-Eigenschaften für einen Benutzer abzurufen.

Syntax

DBMS_CACHE.GET_USER_PROPERTY (
    property_name      IN   VARCHAR2,
    owner              IN   VARCHAR2 DEFAULT NULL,
    property_value_str OUT  VARCHAR2);

DBMS_CACHE.GET_USER_PROPERTY (
    property_name      IN   VARCHAR2,
    owner              IN   VARCHAR2 DEFAULT NULL,
    property_value_num OUT  NUMBER);

Parameter

Parameter Beschreibung

property_name

Gibt den Namen der Eigenschaft an.

Folgende gültige Werte sind für property_name verfügbar:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE

owner

Legt den Schemanamen fest. Dieser Parameter ist optional und standardmäßig das aktuelle Schema.

property_value_str

Ruft einen STRING-Wert für den angegebenen Eigenschaftsnamen ab.

property_value_num

Ruft einen NUMBER-Wert für den angegebenen Eigenschaftsnamen ab.

Beispiel

SET SERVEROUTPUT ON;
DECLARE
   cache_property NUMBER;
BEGIN
   DBMS_CACHE.GET_USER_PROPERTY (
      property_name  => 'MAX_CACHE_SIZE',
      owner          => NULL,
      property_value => cache_property
   );
 DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/

Hinweis zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um diese Prozedur ausführen zu können.

Prozedur SET_USER_PROPERTY

Verwenden Sie die Prozedur DBMS_CACHE.SET_USER_PROPERTY, um AUTO-Caching-Eigenschaften für ein angegebenes Schema festzulegen, einschließlich der Eigenschaften, die das automatische Caching für das Schema aktivieren. Diese Prozedur ist überladen.

Syntax

DBMS_CACHE.SET_USER_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_num  IN   NUMBER,
    owner               IN   VARCHAR2 DEFAULT NULL);

DBMS_CACHE.SET_USER_PROPERTY (
    property_name       IN   VARCHAR2,
    property_value_str  IN   NUMBER,    
    owner               IN   VARCHAR2 DEFAULT NULL
);

Parameter

Parameter Beschreibung

property_name

Gibt den Namen der Eigenschaft an.

Folgende gültige Werte sind für property_name verfügbar:
  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • AUTO_REFRESH_MODE: Gibt den Geltungsbereich an, in dem die Aktualisierung für AUTO-Caches ausgeführt wird.

    Folgende gültige Werte sind für AUTO_REFRESH_MODE verfügbar:
    • ALL: Alle vorhandenen AUTO-Caches im Schema werden aktualisiert, und bei Bedarf werden neue Caches für den angegebenen Benutzer erstellt. Dies ist das Standardverhalten.

    • CURRENT: Es werden nur vorhandene Caches aktualisiert. Für den angegebenen Benutzer werden keine neuen Caches hinzugefügt.

    • NEW: Für den angegebenen Benutzer werden nur neue Caches erstellt.

property_value_num

Stellt einen NUMBER-Wert für den angegebenen Eigenschaftsnamen bereit.

property_value_str

Stellt einen STRING-Wert für den angegebenen Eigenschaftsnamen bereit.

owner

Legt den Schemanamen fest. Dieser Parameter ist optional und standardmäßig das aktuelle Schema.

Beispiel

BEGIN
 DBMS_CACHE.SET_USER_PROPERTY (
        property_name       => 'MAX_CACHE_SIZE', 
        property_value_num  => 50,
        owner               => 'SALES');                                                                
END;                                                                 
/

Hinweis zur Verwendung

  • Sie müssen als Benutzer ADMIN angemeldet sein oder über die Berechtigung EXECUTE für das Package DBMS_CACHE verfügen, um diese Prozedur ausführen zu können.