Externen Tabellencache verwenden, um die Performance für externe Tabellen zu verbessern

Mit dem externen Tabellencache in Oracle Autonomous Database können Sie häufig aufgerufene Daten aus externen Tabellen in der Datenbank cachen.

Hinweis

Externer Tabellencache wird nur für Oracle Database 23ai unterstützt.

Externen Tabellencache in Autonomous Database

Ein externer Tabellencache ist ein Speicherbereich in Autonomous Database, in dem die Daten aus einer externen Tabelle gespeichert werden.

Externe Daten werden nicht von der Datenbank verwaltet. Sie können jedoch die externen Tabellen verwenden, um Daten außerhalb der Datenbank abzufragen. Abfragen für externe Tabellen sind nicht so schnell wie Abfragen für Datenbanktabellen, da sie jedes Mal, wenn Sie auf die Daten zugreifen, aus den externen Dateien abgerufen werden müssen, die im Objektspeicher gespeichert sind.

Mit dem Feature für den externen Tabellencache können Sie häufig aufgerufene Daten aus externen Tabellen in Autonomous Database cachen, ohne dass Änderungen an Ihren Anwendungen erforderlich sind, die auf die Daten zugreifen. Dadurch wird der Zugriff auf externe Tabellen beschleunigt.

Die Verwendung des Cache für externe Tabellen bietet folgende Vorteile:
  • Verbesserte Performance: Abfragen sind für Ihre häufig aufgerufenen externen Daten um ein Vielfaches schneller – ideal für Dashboards, Berichte und Analysetools, die regelmäßig auf dieselben Daten zugreifen.

  • 100% transparent: Der Caching-Mechanismus ist vollständig transparent. Anwendungen können von einer verbesserten Geschwindigkeit profitieren, ohne dass Änderungen an ihren Abfragen, Dashboards oder Anwendungen erforderlich sind.

  • Niedrigere Cloud-Kosten: In einer Multi-Cloud-Anwendung reduziert das Caching den Bedarf an wiederholten externen Datenabrufen aus dem Remotespeicher und reduziert so die Gebühren für den Datenausgang, die mit dem Zugriff auf Daten über Regionen oder Clouds verbunden sind.

Sie können einen externen Tabellencache für partitionierte und nicht partitionierte Tabellen erstellen, die für die folgenden Dateitypen erstellt wurden:
  • Parquet

  • ORC

  • AVRO

  • Eisbergtische

Weitere Informationen finden Sie unter Externe Daten abfragen.

Voraussetzungen zum Erstellen des Cache für externe Tabellen

Listet die Voraussetzungen für die Erstellung des Cache für externe Tabellen auf.

  • Sie benötigen die Berechtigung EXECUTE für das Package DBMS_EXT_TABLE_CACHE. Beachten Sie, dass Sie nur einen externen Tabellencache in Ihrem eigenen Schema und für die externen Tabellen erstellen können, deren Eigentümer Sie sind.

  • Sie müssen eine geeignete Speicherplatz-Quota für Ihr Schema zugewiesen haben, um sicherzustellen, dass genügend Speicherkapazität für die Cachedaten vorhanden ist.

  • Sie benötigen Zugangsdaten für den Zugriff auf externe Tabellendateien, die im Objektspeicher gespeichert sind. Sie müssen keine Zugangsdaten erstellen, wenn Sie Resource Principal-Zugangsdaten für den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher aktivieren.

Externen Tabellencache in Autonomous Database erstellen und verwalten

Mit dem externen Tabellencache können Sie die Daten aus externen Tabellen in der Datenbank cachen.

Der externe Tabellencache wird als Schemaobjekt in der Datenbank erstellt. Dabei wird physischer Speicherplatz zugewiesen, ähnlich wie Tabellen und Indizes in Datendateien gespeichert werden. Wenn Sie einen externen Tabellencache erstellen, wird eine neue Tabelle in Ihrem Schema erstellt, und alle für Ihr Schema festgelegten Speicherplatz-Quota-Grenzwerte gelten auch für den externen Tabellencache.

Externen Tabellencache erstellen

Führen Sie DBMS_EXT_TABLE_CACHE.CREATE_CACHE aus, um einen externen Tabellencache zu erstellen.

Wenn der Cache erstellt wird, ist er zunächst leer und für die Population aktiviert. Die Cachegröße erhöht sich jedes Mal, wenn eine Datei hinzugefügt wird, abhängig von den definierten Speicherplatz-Quota-Grenzwerten für das Schema, bis sie die zugewiesenen Grenzwerte erreicht. Weitere Informationen finden Sie unter Optionale Größenvoreinstellungen für externen Tabellencache festlegen.

  1. Verwenden Sie DBMS_EXT_TABLE_CACHE.CREATE_CACHE, um einen externen Tabellencache für Ihr Schema zu erstellen. Beispiel:
    BEGIN
        DBMS_EXT_TABLE_CACHE.CREATE_CACHE (      
          owner          => 'SALES',
          table_name     => 'STORE_SALES',
          partition_type => 'PATH');                                                                 
    END;                                                                 
    /
    

    Dadurch wird ein Cache für die Tabelle STORE_SALES im Schema SALES erstellt. Die STORE_SALES ist eine externe Tabelle, die auf im Objektspeicher gespeicherte Daten verweist.

    Der Parameter owner gibt den Schemanamen an. In diesem Beispiel wird ein externer Tabellencache für den Benutzer SALES erstellt.

    Der Parameter partition_type gibt die Partitionierungsmethode an, die für den externen Tabellencache verwendet werden soll. In diesem Beispiel wird der Cache mit der Spalte FILE$PATH partitioniert. Die FILE$PATH ist eine unsichtbare Spalte, die den Dateipfadtext bis zum Anfang des Objektnamens angibt.

    In den folgenden Themen finden Sie weitere Informationen:

    Prozedur CREATE_CACHE

    Metadatenspalten für externe Tabelle

  2. Wenn Sie zum ersten Mal einen externen Tabellencache erstellen, werden dessen Metadaten im Data Dictionary gespeichert. Für die Cachedaten wird jedoch kein Speicherplatz zugewiesen. Sie können die Ansicht USER_EXTERNAL_TAB_CACHES abfragen, um die Cacheerstellung zu prüfen.
    SELECT external_table_name, cached, disabled 
      FROM user_external_tab_caches;

    Weitere Informationen finden Sie unter Views DBA_EXTERNAL_TAB_CACHES und USER_EXTERNAL_TAB_CACHES.

    Verwenden Sie die Prozedur DBMS_EXT_TABLE_CACHE.VALIDATE, um einen externen Tabellencache zu validieren. Ein Fehler wird gemeldet, wenn die referenzierte externe Tabelle nicht in der Datenbank gefunden wurde.

    Beispiel:
    BEGIN
      DBMS_EXT_TABLE_CACHE.VALIDATE (
        owner         => 'SALES', 
        table_name    => 'STORE_SALES',
        raise_errors  => TRUE);
    END;
    /

    Weitere Informationen finden Sie unter Prozedur VALIDATE.

Dateien in externen Tabellencache auffüllen

Zeigt Beispiele zum Auffüllen von Dateien in den externen Tabellencache.

Nachdem Sie einen Cache erstellt haben, können Sie Dateien in den Cache füllen. Beim Auffüllen von Dateien wird der Inhalt der angegebenen externen Tabellendateien in den Cache geladen. Sie können wählen, ob Sie alle Dateien aus einer Tabelle oder einen bestimmten Prozentsatz der Tabelle auffüllen oder eine Filterbedingung angeben, um die Dateien zu begrenzen, die Sie auffüllen möchten. Beispiel: Sie können die Dateien nach ihren Namen oder einem Datumsbereich filtern.

Hinweis

  • Je nachdem, welche Speicherplatz-Quota dem Schema zugewiesen ist, versucht Oracle, Dateien in den Cache zu füllen. Wenn der zugewiesene Quota-Grenzwert erreicht ist, füllt Oracle keine Dateien mehr auf, es sei denn, der erforderliche Speicherplatz wird zugewiesen.

  • Der Cache der externen Tabelle wird nicht automatisch aktualisiert. Um den Cache zu aktualisieren, wenn eine Datei im Objektspeicher geändert wird, müssen Sie die Datei erneut auffüllen.

  • Wenn eine Datei aus dem Objektspeicher gelöscht wird, werden die entsprechenden gecachten Daten sofort ungültig und können nicht abgerufen werden.

Tabelle zu externem Tabellencache hinzufügen

Verwenden Sie DBMS_EXT_TABLE_CACHE.ADD_TABLE, um eine gesamte Tabelle oder einen bestimmten Prozentsatz der externen Tabelle in den Cache zu füllen.

Beispiele

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_TABLE (
    owner         => 'SALES', 
    table_name    => 'STORE_SALES');
END;
/

In diesem Beispiel wird versucht, die Tabelle STORE_SALES in den Cache aufzufüllen. Dabei werden alle vorhandenen Dateien übersprungen, die bereits aufgefüllt wurden.

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_TABLE (
    owner         => 'SALES', 
    table_name    => 'STORE_SALES',
    percent_files => 80);
END;
/

In diesem Beispiel wird versucht, 80% der Tabelle STORE_SALES in den Cache aufzufüllen. Alle vorhandenen Dateien, die bereits aufgefüllt wurden, werden übersprungen.

Der Parameter percent_files ist optional. Wenn Sie diesen Parameter nicht angeben, wird die gesamte Tabelle in den Cache gefüllt.

Weitere Informationen finden Sie unter Prozedur ADD_TABLE.

Dateien zu externem Tabellencache hinzufügen

Mit den folgenden Verfahren können Sie eine oder mehrere Dateien zum externen Tabellencache hinzufügen:
  • ADD_FILE: Zum Hinzufügen einer einzelnen Datei in den Cache.

  • ADD_BY_LIKE: Zum Hinzufügen einer oder mehrerer angegebener Dateien basierend auf den angegebenen Pfadfiltern.

  • ADD_LATEST_FILES: Zum Hinzufügen einer oder mehrerer Dateien basierend auf dem angegebenen Zeitintervall.

Beispiele

Verwenden Sie die Prozedur DBMS_EXT_TABLE_CACHE.ADD_FILE, um eine einzelne Datei in den externen Tabellencache zu füllen. Beispiel:
BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_FILE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

In diesem Beispiel werden Daten aus der Datei salesdata.parquet in den Cache gefüllt.

In diesem Beispiel wird das Auffüllen der Datei in den Cache übersprungen, wenn die angegebene Datei im Cache vorhanden ist und seit dem letzten Zwischenspeichern der Datei nicht mehr geändert wurde.

Weitere Informationen finden Sie unter Prozedur ADD_FILE.

Verwenden Sie die Prozedur DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE, um eine oder mehrere Dateien in den externen Tabellencache zu füllen. Beispiel:
BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet"]'
);
END;
/

In diesem Beispiel werden Daten aus den Dateien salesdata.parquet und salesdata1.parquet in den Cache geladen, sodass alle vorhandenen Dateien übersprungen werden, die bereits aufgefüllt wurden.

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data2.parquet"]',
    esc_char     => '#',
    force        => TRUE);
END;
/

In diesem Beispiel werden die Dateien sales_data1.parquet und sales_data2.parquet in den Cache gefüllt.

In diesem Beispiel wird das Zeichen "#" als Escapezeichen definiert. Das Zeichen "_" nach "#" wird als literaler Unterstrich und nicht als Platzhalter behandelt, der mit einem einzelnen Zeichen übereinstimmt.

Weitere Informationen finden Sie unter Prozedur ADD_BY_LIKE.

Verwenden Sie die Prozedur DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES, um eine oder mehrere Dateien basierend auf dem letzten Änderungsdatum in den externen Tabellencache zu füllen. Beispiel:
BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    since        => INTERVAL '7' DAY,
    max_files    => 5,
    force        => TRUE);
END;
/

Der Parameter since gibt das Zeitintervall an. Nur Dateien, die innerhalb der letzten sieben (7) Tage geändert wurden, können in den Cache aufgefüllt werden.

Der Parameter max_files begrenzt die Anzahl der Dateien, die in den Cache aufgefüllt werden können. In diesem Beispiel werden nur fünf (5) Dateien aufgefüllt.

Der Parameter force erzwingt, dass die angegebenen Dateien im Cache überschrieben werden, selbst wenn die Dateien nicht geändert wurden.

Weitere Informationen finden Sie unter Prozedur ADD_LATEST_FILES.

Fragen Sie die folgenden Data Dictionary Views ab, um die im Cache der externen Tabelle gecachten Dateien aufzulisten:

Dateien aus externem Tabellencache löschen

Zeigt Beispiele zum Löschen von Dateien aus dem externen Tabellencache.

Sie können alle Dateien aus dem Cache entfernen oder Filterbedingungen angeben, um eine oder mehrere Dateien aus dem Cache zu löschen. Beispiel: Sie können die Dateien nach ihrem Namen oder basierend auf einem bestimmten Zeitintervall filtern.

Cache für externe Tabelle löschen

Verwenden Sie DBMS_EXT_TABLE_CACHE.CLEAR, um alle Dateien aus dem externen Tabellencache zu löschen. Beispiel:

BEGIN
  DBMS_EXT_TABLE_CACHE.CLEAR (
    owner         => 'SALES', 
    table_name    => 'STORE_SALES');
END;
/

In diesem Beispiel werden alle Dateien aus dem STORE_SALES-Cache gelöscht, und der gesamte Speicherplatz, der von den entfernten Dateien belegt wird, wird aufgehoben.

Weitere Informationen finden Sie unter CLEAR-Prozedur.

Dateien aus externem Tabellencache löschen

Mit den folgenden Verfahren können Sie eine oder mehrere Dateien aus dem externen Tabellencache löschen:
  • DROP_FILE: zum Löschen einer einzelnen Datei aus dem Cache.

  • DROP_BY_LIKE: Zum Löschen einer oder mehrerer Dateien aus dem Cache basierend auf den angegebenen Pfadfiltern.

  • RETIRE_FILES: Zum Löschen einer oder mehrerer Dateien aus dem Cache basierend auf dem angegebenen Intervall.

Beispiele

Verwenden Sie DBMS_EXT_TABLE_CACHE.DROP_FILE, um eine Datei aus dem externen Tabellencache zu löschen. Beispiel:

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_FILE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

In diesem Beispiel wird die Datei salesdata.parquet aus dem Cache gelöscht, und der gesamte Speicherplatz, der von der entfernten Datei belegt wird, wird aufgehoben.

Weitere Informationen finden Sie unter Prozedur DROP_FILE.

Verwenden Sie DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE, um eine oder mehrere Dateien basierend auf dem Parameter path_filters zu löschen. Beispiel:

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet"]'
);
END;
/

In diesem Beispiel werden die Dateien salesdata.parquet und salesdata1.parquet aus dem Cache gelöscht, und der gesamte Speicherplatz, der von den entfernten Dateien belegt wird, wird aufgehoben.

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/sales#_data1.parquet"]'
);
END;
/

In diesem Beispiel werden die Dateien sales#_data1 und sales#_data2 aus dem Cache gelöscht, und der gesamte Speicherplatz, der von den entfernten Dateien belegt wird, wird aufgehoben.

In diesem Beispiel wird das Zeichen "#" als Escapezeichen definiert. Das Zeichen "_" nach "#" wird als literaler Unterstrich und nicht als Platzhalter behandelt, der mit einem einzelnen Zeichen übereinstimmt.

Weitere Informationen finden Sie unter Prozedur DROP_BY_LIKE.

Verwenden Sie DBMS_EXT_TABLE_CACHE.RETIRE_FILES, um eine oder mehrere Dateien basierend auf dem angegebenen Intervall zu löschen. Beispiel:

BEGIN
 DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES',
    before       => INTERVAL '30' DAY);
END;
/

In diesem Beispiel werden Dateien, die älter als dreißig (30) Tage sind, aus dem Cache gelöscht und der gesamte von den entfernten Dateien belegte Speicherplatz freigegeben.

Weitere Informationen finden Sie unter Prozedur RETIRE_FILES.

In den obigen Beispielen werden eine oder mehrere Dateien aus dem Cache entfernt, während der Cache beibehalten wird. Sie können Dateien bei Bedarf erneut in den Cache laden. Weitere Informationen finden Sie unter Dateien in externen Tabellencache füllen.

Externen Tabellencache deaktivieren und aktivieren

Zeigt Beispiele zum Deaktivieren und Aktivieren des Cache für externe Tabellen.

Führen Sie DBMS_EXT_TABLE_CACHE.DISABLE aus, um den externen Tabellencache aus der Datenbank zu deaktivieren. Wenn Sie einen Cache deaktivieren, werden keine Daten aus dem Cache gelöscht. Stattdessen wird der Cache als DISABLED gekennzeichnet, und der Optimizer kann den Cache nicht für Query Rewrites verwenden.

Beispiel

BEGIN
    DBMS_EXT_TABLE_CACHE.DISABLE (      
      owner          => 'SALES',
      table_name     => 'STORE_SALES');                                                                 
END;                                                                 
/

In diesem Beispiel wird der STORE_SALES-Cache deaktiviert.

Weitere Informationen finden Sie unter DISABLE-Prozedur.

Nachdem Sie einen externen Tabellencache deaktiviert haben, aktivieren Sie den Cache mit DBMS_EXT_TABLE_CACHE.ENABLE.

Beispiel:
BEGIN
  DBMS_EXT_TABLE_CACHE.ENABLE (
    owner        => 'SALES', 
    table_name   => 'STORE_SALES'
 );
END;
/

In diesem Beispiel wird der STORE_SALES-Cache aktiviert.

Weitere Informationen finden Sie unter ENABLE - Prozedur.

Cache für externe Tabelle löschen

Zeigt ein Beispiel zum Löschen des Cache für externe Tabellen.

Führen Sie DBMS_EXT_TABLE_CACHE.DROP_CACHE aus, um einen externen Tabellencache zu löschen. Die Prozedur DBMS_EXT_TABLE_CACHE.DROP_CACHE entfernt den angegebenen externen Tabellencache aus der Datenbank und gibt den mit dem Cache verknüpften Speicherplatz frei.

Beispiel:

BEGIN
    DBMS_EXT_TABLE_CACHE.DROP_CACHE (      
      owner          => 'SALES',
      table_name     => 'STORE_SALES');                                                             
END;                                                                 
/

In diesem Beispiel wird der STORE_SALES-Cache aus dem Schema SALES gelöscht.

Wenn Sie einen Cache löschen, werden seine Metadaten aus dem Data Dictionary entfernt, und alle gecachten Daten werden gelöscht.

Weitere Informationen finden Sie unter Prozedur DROP_CACHE.

Fragen Sie die Ansicht USER_EXTERNAL_TAB_CACHES ab, um zu prüfen, ob der Cache gelöscht wurde. Beispiel:
SELECT external_table_name, cached
  FROM user_external_tab_caches;
Weitere Informationen finden Sie unter Views DBA_EXTERNAL_TAB_CACHES und USER_EXTERNAL_TAB_CACHES.

Cacheinformationen für externe Tabelle anzeigen

Autonomous Database bietet Ansichten, mit denen Sie den externen Tabellencache überwachen können.

Anzeigen Beschreibung
Ansichten DBA_EXTERNAL_TAB_CACHES und USER_EXTERNAL_TAB_CACHES

Stellt Informationen über alle externen Tabellencaches in der Datenbank oder über die externen Tabellencaches eines Benutzers bereit.

ALL_EXTERNAL_TAB_CACHE_LOCATIONS

Stellt Informationen zu den Dateien in Cloud Storage bereit, die für den aktuellen Benutzer zugänglich sind und zu gecachten externen Tabellen gehören.

USER_EXTERNAL_TAB_CACHE_LOCATIONS

Enthält Informationen zu den Dateien im Cloud-Speicher, deren Eigentümer der aktuelle Benutzer ist und die zu zwischengespeicherten externen Tabellen gehören. In dieser Ansicht wird die Spalte OWNER nicht angezeigt.

Optionale Größenvoreinstellungen für externen Tabellencache festlegen

Mit der Prozedur DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY können Sie Größenvoreinstellungen und Speicherplatz-Quota-Grenzwerte für den externen Tabellencache festlegen.

Standardmäßig ist der externe Tabellencache für einen Benutzer deaktiviert. Um den externen Tabellencache zu aktivieren und zu erstellen, verwenden Sie die Prozedur DBMS_EXT_TABLE_CACHE.CREATE_CACHE. Der Cache wird in Ihrem Standardschema erstellt und erbt alle für Ihr Schema definierten Speicherplatz-Quota-Grenzwerte. Sie können jedoch auch die Prozedur DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY verwenden, um Speicherplatzkontingente für den externen Tabellencache zu definieren. Sie verwenden die Parameter PROPERTY_NAME und PROPERTY_VALUE der Prozedur DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY, um die Grenzwerte für die Speicherplatz-Quota festzulegen.

Der Parameter PROPERTY_NAME akzeptiert die Werte MAX_CACHE_SIZE und MAX_CACHE_PERCENT. Die Eigenschaft MAX_CACHE_SIZE gibt die gesamte externe Cachegröße in Byte an. Die Eigenschaft MAX_CACHE_PERCENT gibt die gesamte externe Cachegröße als Prozentsatz der Quota des angegebenen Benutzers an.

Bevor Sie die Eigenschaften für die Cachegröße festlegen, beachten Sie die folgende Prioritätsreihenfolge:
  • Wenn MAX_CACHE_SIZE, MAX_CACHE_PERCENT und die Speicherplatz-Quota definiert sind, hat MAX_CACHE_PERCENT Vorrang vor MAX_CACHE_SIZE.

  • Wenn nur MAX_CACHE_SIZE definiert ist und MAX_CACHE_PERCENT oder das Speicherplatz-Quota nicht definiert ist, hat MAX_CACHE_SIZE Vorrang.

  • Wenn nur die Speicherplatz-Quota definiert ist und MAX_CACHE_SIZE und MAX_CACHE_PERCENT nicht definiert sind, entspricht die Quota für die Cachegröße standardmäßig 10% der gesamten Schema-Quota.

  • Wenn MAX_CACHE_SIZE, MAX_CACHE_PERCENT oder die Speicherplatz-Quota nicht definiert ist, wird die Cache-Speicher-Quota standardmäßig auf UNLIMITED gesetzt.

Beispiele

BEGIN
    DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name  => 'MAX_CACHE_PERCENT',          
    property_value => 50,                   
    owner          => 'SALES');                                                                
END;                                                                 
/

In diesem Beispiel wird die Caching-Voreinstellung für das Schema SALES auf MAX_CACHE_PERCENT gesetzt.

property_value ist 50%, was angibt, dass die Cachespeicher-Quota für das Schema SALES maximal 50% der gesamten für SALES definierten Speicherplatz-Quota beträgt.

BEGIN
    DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    owner          => 'SALES',   
    property_name  => 'MAX_CACHE_SIZE',          
    property_value => 5368709120);                                                                
END;                                                                 
/

In diesem Beispiel wird die Caching-Voreinstellung für das Schema SALES auf MAX_CACHE_SIZE gesetzt.

Die property_value ist 5368709120, was angibt, dass die maximale Cachegröße für das Schema SALES bis zu 5 GB beträgt.

Weitere Informationen finden Sie unter Prozedur SET_USER_PROPERTY und Prozedur CREATE_CACHE.

Verwenden Sie DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY, um die Eigenschaften der Cachegröße abzurufen.

Beispiel:

SET SERVEROUTPUT ON
    DECLARE
    max_cache_sz NUMBER,
    BEGIN
    max_cache_sz := DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
        property_name       => 'MAX_CACHE_SIZE',         
        owner               => 'SALES');                                                                
END;                                                                 
/

Weitere Informationen finden Sie unter Funktion GET_USER_PROPERTY.

Hinweise zum externen Tabellencache

Listet wichtige Hinweise und Einschränkungen zur Verwendung des externen Tabellencaches in einer Autonomous Database auf.

  • Sie können nur einen externen Tabellencache in Ihrem eigenen Schema und für die externen Tabellen erstellen, deren Eigentümer Sie sind.

  • Ein externer Tabellencache kann nur Dateien aus einer einzelnen externen Tabelle enthalten.

  • Sie können keine Berechtigungen für einen externen Tabellencache erteilen, und Sie können nur auf Daten aus dem externen Tabellencache zugreifen, für den Sie verantwortlich sind.

  • Wenn eine Datei aus dem Objektspeicher gelöscht wird, werden die entsprechenden Daten im Cache als ungültig gekennzeichnet und können nicht aufgerufen werden.