Automatische Partitionierung in Autonomous Database verwalten

Die automatische Partitionierung analysiert und automatisiert die Partitionserstellung für Tabellen und Indizes eines angegebenen Schemas, um die Performance und Verwaltbarkeit in Autonomous Database zu verbessern.

Die automatische Partitionierung ist bei Anwendung transparent und erfordert keine Benutzerinteraktion oder Wartung.

Hinweis

Die automatische Partitionierung beeinträchtigt vorhandene Partitionierungsstrategien nicht und ergänzt die manuelle Partitionierung in Autonomous Database. Manisch partitionierte Tabellen werden als Kandidaten für die automatische Partitionierung ausgeschlossen.

Automatische Partitionierung

Die automatische Partitionierung in Autonomous Database analysiert die Anwendungs-Workload und wendet die Partitionierung automatisch auf Tabellen und deren Indizes an, um die Performance zu verbessern oder eine bessere Verwaltung großer Tabellen zu ermöglichen.

Um geeignete Partitionierungsstrategien zu finden, benötigen Sie umfassende Kenntnisse über die Anwendungs-Workload und die Datenverteilung. Wenn Sie eine manuelle Partitionierung durchführen, müssen Sie Ihre Workload analysieren und auswählen, wie die Partitionierung auf Tabellen und Indizes angewendet werden soll, um die Performance von Anwendungen zu verbessern. Durch die automatische Partitionierung können Autonomous Database-Benutzer von der Partitionierung ohne manuelle Schema- und Workload-Analyse profitieren.

Bei der automatischen Partitionierung wird ein einspaltiger Partitionsschlüssel kombiniert mit einer Partitionierung auf einer Ebene verwendet. Die automatische Partitionierung unterstützt keine komplexeren Partitionierungsstrategien wie partitionierte Tabellen mit mehreren Spalten oder zusammengesetzte Partitionierung.

Die automatische Partitionierung wählt aus den folgenden Partitionierungsmethoden:

  • AUTOMATIC INTERVAL: Diese Option eignet sich am besten für Bereiche von Partitionsschlüsselwerten.
  • LIST AUTOMATIC: Diese Partitionierungsmethode gilt für eindeutige Partitionsschlüsselwerte.
  • HASH: Wendet die Partitionierung für die Hashwerte des Partitionsschlüssels an.

Weitere Informationen finden Sie unter Partitionierung - Konzepte.

Die automatische Partitionierung bietet folgende Funktionen:

  • Analysiert die Anwendungs-Workload und ermittelt die optimale Partitionierungsstrategie, um die Abfrageperformance für Tabellen zu verbessern, die für die automatische Partitionierung in Frage kommen.
  • Bietet PL/SQL-APIs zum Konfigurieren der automatischen Partitionierung in einer Datenbank, zum Generieren von Berichten über Partitionierungsergebnisse und zum Generieren und Anwenden einer identischen Partitionierungsstrategie für eine bestimmte Workload.
Hinweis

Für die automatische Partitionierung sind explizite Aufrufe der PL/SQL-APIs DBMS_AUTO_PARTITION erforderlich, um die automatische Partitionierung zu empfehlen und auf eine Autonomous Database anzuwenden.

Funktionsweise der automatischen Partitionierung

Im Gegensatz zur automatischen Indexierung wird die automatische Partitionierung nicht regelmäßig als Hintergrundaufgabe ausgeführt. Die automatische Partitionierung wird nur ausgeführt, wenn Sie sie mit der Funktion DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD aufrufen.

Beim Aufruf ermittelt die automatische Partitionierung Kandidatentabellen für die automatische Partitionierung, bewertet Partitionsschemas und implementiert eine Partitionierungsstrategie.

Beim Aufrufen der automatischen Partitionierung werden folgende Aufgaben ausgeführt:

  1. Gibt die Kandidatentabellen für die automatische Partitionierung an, indem die Workload für ausgewählte Kandidatentabellen analysiert wird.

    Standardmäßig verwendet die automatische Partitionierung die in einer Autonomous Database erfassten Workload-Informationen zur Analyse. Je nach Größe der Workload kann eine Stichprobe von Abfragen untersucht werden.

  2. Evaluierung von Partitionsschemas basierend auf Workload-Analyse, Quantifizierung und Verifizierung der Performancevorteile:

    1. Geeignete leere Partitionsschemas mit synthetisierten Statistiken werden intern erstellt und auf Performance analysiert.

    2. Das Kandidatenschema mit der höchsten geschätzten I/O-Reduzierung wird als optimale Partitionierungsstrategie gewählt und intern implementiert, um die Performance zu testen und zu überprüfen.

    3. Wenn ein Kandidatenpartitionsschema die Performance nicht über die angegebenen Performance- und Regressionskriterien hinaus verbessert, wird die automatische Partitionierung nicht empfohlen.

  3. implementiert die optimale Partitionierungsstrategie bei entsprechender Konfiguration für die Tabellen, die von den automatischen Partitionierungsprozeduren analysiert werden.

Automatische Partitionierung konfigurieren

Verwenden Sie die Prozedur DBMS_AUTO_PARTITION.CONFIGURE, um automatische Partitionierungsoptionen zu konfigurieren.

Empfehlungen aktivieren und implementieren

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','IMPLEMENT');

Empfehlungen aktivieren, ohne sie zu implementieren

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','REPORT ONLY');

Neue Empfehlungen und Implementierung dieser neuen Empfehlungen deaktivieren

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','OFF');
Hinweis

In diesem Modus werden vorhandene automatisch partitionierte Tabellen nicht deaktiviert.

Schemas und Tabellen für automatische Partitionierung verwalten

Verwenden Sie die Einstellungen AUTO_PARTITION_SCHEMA und AUTO_PARTITION_TABLE, um Schemas und Tabellen anzugeben, die für die automatische Partitionierung geprüft werden.
Hinweis

Wenn die automatische Partitionierung aufgerufen wird, werden alle Schemas und Tabellen in benutzerverwalteten Schemas für die automatische Partitionierung geprüft, wenn sowohl die Inklusions- als auch die Exklusionsliste leer sind.
  • Wenn die Inklusionsliste und die Exklusionsliste leer sind, fügen Sie das Schema HR und die Tabelle SH.SALES zur Exklusionsliste hinzu, sodass nur diese Objekte nicht automatisch partitionierungsanalysen ausführen können.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => FALSE);
    
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_TABLE', 
             PARAMETER_VALUE => 'SH.SALES',
             ALLOW           => FALSE);
    END;
    /
  • Nachdem das vorherige Beispiel ausgeführt wurde, entfernen Sie wie folgt das Schema HR aus der Exklusionsliste.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => NULL);
    END;
    /
  • Mit dem folgenden Befehl entfernen Sie alle Schemas aus der Ausschlussliste.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => NULL,
             ALLOW           => TRUE);
    END;
    /
  • Wenn die Inklusions- und Exklusionslisten leer sind, wird im folgenden Beispiel das Schema HR zur Inklusionsliste hinzugefügt. Sobald die Einschlussliste nicht mehr leer ist, werden nur Schemas in der Einschlussliste berücksichtigt.

    In diesem Beispiel ist nur das Schema HR für die automatische Partitionierung geeignet.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => TRUE);
    END;
    /

Aufbewahrungszeitraum für automatische Partitionierungsberichte verwalten

Der Aufbewahrungszeitraum für automatische Partitionierungsberichte wird auf 365 Tage festgelegt.

BEGIN
    DBMS_AUTO_PARTITION.CONFIGURE(
         PARAMETER_NAME  => 'AUTO_PARTITION_REPORT_RETENTION', 
         PARAMETER_VALUE => '365');
END;
/
Weitere Informationen finden Sie unter Prozedur CONFIGURE.

Automatische Partitionierung verwenden

Enthält Informationen zum Ablauf und zu allgemeinen Prozessen zur Verwendung und Verwaltung der automatischen Partitionierung in Autonomous Database.

  1. Wählen Sie die Datenbank für die automatische Partitionierung.

    Im Allgemeinen empfiehlt Oracle die automatische Partitionierung in klonierten oder manuell erstellten Datenbanken und nicht in Produktionsdatenbanken. Die Analyse und Verifizierung der automatischen Partitionierung mit RECOMMEND_PARTITION_METHOD ist möglicherweise ein ressourcenintensiver Vorgang mit langer Ausführungszeit, der Ihre Datenbank durch zusätzliche Verarbeitung belasten kann.

    Damit eine sekundäre Datenbank für die automatische Partitionierungsanalyse verwendet werden kann, muss die Datenbank über Informationen zu Ihrer Workload in einem intern verwalteten SQL-Workload-Repository verfügen.

    1. Geklonte Datenbank für die automatische Partitionierung verwenden.

      Autonomous Database erfasst automatisch Workload-Informationen im Zeitverlauf in einem intern verwalteten SQL-Workload-Repository, das im SQL Tuning Set (SYS_AUTO_STS) verwaltet wird. Wenn Sie die Produktionsdatenbank nach einer längeren Ausführung der Workload klonen, enthält der Klon die erforderlichen Workload-Informationen. Sie können die automatische Partitionierung mit solchen Klons ohne zusätzliche Maßnahmen verwenden.

      Siehe Autonomous Database-Instanz kopieren.

    2. Andere Datenbanken für die automatische Partitionierung verwenden.

      Sie können Ihre Workload manuell ausführen, um die erforderlichen Workload-Informationen zu erfassen. Wenn Sie Ihre Workload vor der automatischen Partitionierung manuell ausführen, können alle Autonomous Database-Instanzen, die Ihre gewünschten Schemas und Daten enthalten, nach der Ausführung der Workload für die automatische Partitionierung verwendet werden, unabhängig davon, ob sie geklont oder manuell erstellt wurde.

  2. Empfehlen Sie die automatische Partitionierung.

    Verwenden Sie RECOMMEND_PARTITION_METHOD, um Ihre Datenbank, bestimmte Schemas oder bestimmte Tabellen zu analysieren, um gegebenenfalls die optimale Partitionierungsstrategie zu identifizieren. Die Empfehlung analysiert Ihre Workload und Schemas und prüft die Performancevorteile, indem die Workload anhand einer intern erstellten Hilfstabelle ausgeführt wird. Bei diesem Vorgang kann es sich um einen Ressourcenaufwand mit langer Ausführungszeit handeln, bei dem CPU- und I/O-Ressourcen erforderlich sind, um die Auxiliary-Tabelle zu erstellen und die Performance zu prüfen. Außerdem benötigen Sie vorübergehend zusätzlichen Platz von 1 - 1,5 Mal, Ihrem größten Kandidatentisch.

  3. Empfehlung anwenden.

    Jede Empfehlung kann mit der Prozedur APPLY_RECOMMENDATION in der Datenbank implementiert werden, in der die Empfehlungsanalyse erfolgt ist. Alternativ kann jede Empfehlung aus der für die Analyse verwendeten Datenbank extrahiert und auf eine beliebige Datenbank angewendet werden, z.B. ein Produktionssystem. Das für die manuelle Änderung erforderliche Skript wird in der Spalte MODIFY_TABLE_DDL in der View DBA_AUTO_PARTITION_RECOMMENDATION gespeichert.

    Oracle empfiehlt, die automatische Partitionierung außerhalb der Spitzenzeit in der Datenbank durchzuführen. Während Ihre Tabellen in automatisch partitionierte Tabellen geändert werden, fügt die Konvertierung Ihrem System zusätzliche Ressourcenanforderungen hinzu, wie z. B. zusätzliche CPU- und I/O-Vorgänge. Die automatische Partitionierung erfordert eine 1,5-fache Größe der zu ändernden Tabelle als zusätzlichen freien Speicherplatz, abhängig von gleichzeitigen laufenden DML-Vorgängen für diese Tabellen.

Berichte über die automatische Partitionierung generieren

Berichte über die automatische Partitionierung generieren Sie mit den Funktionen REPORT_ACTIVITY und REPORT_LAST_ACTIVITY des Packages DBMS_AUTO_PARTITION.

Bericht über automatische Partitionierungsvorgänge für einen bestimmten Zeitraum im einfachen Textformat generieren

In diesem Beispiel wird ein Bericht generiert, der typische Informationen über die automatischen Partitionierungsvorgänge der letzten 24 Stunden enthält. Der Report wird standardmäßig im einfachen Textformat generiert.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_ACTIVITY();
END;
/

Bericht über automatische Partitionierungsvorgänge im HTML-Format für Mai 2021 generieren

In diesem Beispiel wird ein Bericht generiert, der grundlegende Informationen über die automatischen Partitionierungsvorgänge für den Monat Mai 2021 enthält. Der Report wird im HTML-Format generiert und enthält nur eine Zusammenfassung von automatischen Partitionierungsvorgängen.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_ACTIVITY(
                       ACTIVITY_START => TO_TIMESTAMP('2021-05-01', 'YYYY-MM-DD'),
                       ACTIVITY_END   => TO_TIMESTAMP('2021-06-01', 'YYYY-MM-DD'),
                       TYPE           => 'HTML',
                       SECTION        => 'SUMMARY',
                       LEVEL          => 'BASIC' );
END;
/

Bericht über den letzten automatischen Partitionierungsvorgang generieren (im Nur-Text-Format)

In diesem Beispiel wird ein Bericht generiert, der typische Informationen über den letzten automatischen Partitionierungsvorgang enthält. Der Report wird standardmäßig im einfachen Textformat generiert.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY();
END;
/

Weitere Informationen finden Sie unter Funktion REPORT_ACTIVITY.

Weitere Informationen finden Sie unter Funktion REPORT_LAST_ACTIVITY.

Beispielszenarios für die automatische Partitionierung

Beispiele für Szenarios für die automatische Partitionierung mit den DBMS_AUTO_PARTITION-API-Verfahren und -Funktionen.

Empfehlung für eine einzelne Tabelle generieren und Empfehlung manuell anwenden

  1. Setzen Sie den Parameter AUTO_PARTITION_MODE auf REPORT ONLY, damit eine automatische Partitionierungsempfehlung abgegeben und verifiziert werden kann. Die Empfehlung wird nicht auf die Tabelle angewendet.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'REPORT ONLY');
    END;
    /
  2. Prüfen Sie, ob die Tabelle TPCH.LINEITEM für die automatische Partitionierung in Frage kommt. Dieser Schritt ist optional und wird empfohlen, wenn Sie selektiv einzelne Tabellen prüfen.
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE(
               TABLE_OWNER => 'TPCH',
               TABLE_NAME  => 'LINEITEM')
    FROM DUAL;

    Wenn die Tabelle in Frage kommt, wird beim Aufrufen der automatischen Partitionierung für eine Empfehlungsanalyse VALID zurückgegeben. Andernfalls werden die Verletzungskriterien angezeigt.

    Eine Liste der Kriterien für mögliche Kandidatentabellen finden Sie unter Funktion VALIDATE_CANDIDATE_TABLE.

  3. Rufen Sie die DBMS_AUTO_PARTITION-API auf, um eine Empfehlung für die Tabelle TPCH.LINEITEM zu generieren.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD(
                                 TABLE_OWNER => 'TPCH',
                                 TABLE_NAME  => 'LINEITEM');
    END;
    /

    Die Empfehlungsanalyse und -verifizierung, die Sie mit DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD ausführen, kann ein ressourcenintensiver Vorgang mit langer Ausführungszeit sein und viel Zeit dauern. Führen Sie diesen Schritt in einer Datenbank aus, die nicht Ihr primäres Produktionssystem ist. Oracle empfiehlt, dem Verifizierungsvorgang ausreichende Ressourcen bereitzustellen, indem der Service HIGH ausgewählt wird.

  4. Prüfen Sie die Empfehlung. Die View DBA_AUTO_PARTITION_RECOMMENDATIONS enthält die Informationen zur Empfehlung. In diesem Beispiel prüfen Sie den empfohlenen Partitionsschlüssel und die empfohlene Partitionsmethode.
    SELECT PARTITION_METHOD, PARTITION_KEY
      FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
      WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    

    Fragen Sie außerdem dieselbe View ab, um den Performanceanalysebericht abzurufen, der für die Workload generiert wurde, nachdem die Tabelle entsprechend der Empfehlung partitioniert wurde.

    SELECT REPORT
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    
  5. Wenden Sie die Empfehlung nach der manuellen Validierung der Empfehlung an. Wenn Sie die Empfehlung in der Datenbank anwenden, in der die Empfehlungsanalyse stattgefunden hat, führen Sie dazu die Prozedur APPLY_RECOMMENDATION aus.
    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
             RECOMMENDATION_ID => :RECOMMENDATION_ID);
    END;
    /

    Wenn Sie die Empfehlung auf eine andere Datenbank anwenden möchten, wie z.B. Ihre Produktionsumgebung, extrahieren Sie die Änderungs-DDL. Führen Sie dann die extrahierte Änderungs-DDL in der Zieldatenbank aus. Die Abfrage zum Exportieren der Änderungs-DDL lautet wie folgt:

    SELECT MODIFY_TABLE_DDL
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    

    Beispielausgabe der Änderungs-DDL:

    BEGIN
        -- DBMS_AUTO_PARTITION RECOMMENDATION_ID C3F7A59E085C2F25E05333885A0A55EA
        --   FOR TABLE "TPCH"."LINEITEM"
        --   GENERATED AT 06/04/2021 20:52:29
        DBMS_AUTO_PARTITION.BEGIN_APPLY(EXPECTED_NUMBER_OF_PARTITIONS => 10);
    
        EXECUTE IMMEDIATE
        'ALTER TABLE "TPCH"."LINEITEM"
        MODIFY PARTITION BYLIST(SYS_OP_INTERVAL_HIGH_BOUND
            ("L_SHIPDATE", INTERVAL ''10'' MONTH, TIMESTAMP ''1992-01-01 00:00:00''))
        AUTOMATIC /* SCORE=23533.11;  */
        (PARTITION P_NULL VALUES(NULL))
        AUTO ONLINE PARALLEL';
    
        DBMS_AUTO_PARTITION.END_APPLY;
    EXCEPTION WHEN OTHERS THEN
        DBMS_AUTO_PARTITION.END_APPLY;
        RAISE;
    END;
    
  6. Überprüfen Sie, ob die Tabelle automatisch partitioniert wurde, indem Sie die Katalog-Views abfragen.
    SELECT T.AUTO, T.PARTITIONING_TYPE, C.COLUMN_NAME
        FROM DBA_PART_TABLES T, DBA_PART_KEY_COLUMNS C
        WHERE T.OWNER = 'TPCH' AND T.TABLE_NAME = 'LINEITEM'
            AND T.OWNER = C.OWNER AND T.TABLE_NAME = C.NAME;
    

    Mit dieser Abfrage können Sie ermitteln, ob die automatische Partitionierung auf eine bestimmte Tabelle angewendet wurde.

    SELECT APPLY_TIMESTAMP_START, APPLY_TIMESTAMP_END
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE TABLE_OWNER = 'TPCH' AND TABLE_NAME = 'LINEITEM';
    

Weitere Informationen finden Sie unter Prozedur CONFIGURE.

Informationen dazu finden Sie unter Funktion VALIDATE_CANDIDATE_TABLE.

Informationen dazu finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Weitere Informationen finden Sie unter Prozedur APPLY_RECOMMENDATION.

Empfehlung für in Frage kommende Tabellen generieren und Empfehlung manuell anwenden

  1. Setzen Sie den Parameter AUTO_PARTITION_MODE auf REPORT ONLY, damit eine automatische Partitionierungsempfehlung abgegeben und verifiziert werden kann. Die Empfehlung wird nicht auf vorhandene Tabellen angewendet.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'REPORT ONLY');
    END;
    /
  2. Rufen Sie die DBMS_AUTO_PARTITION-API auf, um eine Empfehlungstabelle zu generieren.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD();
    END;
    /

    Die Recommendation-Analyse und -Verifizierung ist ein Vorgang mit Ressourcenintensität und langer Ausführungszeit, der viel Zeit in Anspruch nehmen kann. Bei sekundären Nicht-Produktionsdatenbanken empfiehlt Oracle, ausreichende Ressourcen für die Verifizierung bereitzustellen, indem der Service HIGH gewählt wird.

  3. Fragen Sie die View DBA_AUTO_PARTITION_RECOMMENDATIONS ab, um zu sehen, welche Tabellen analysiert wurden.
    SELECT TABLE_OWNER, TABLE_NAME, PARTITION_METHOD, PARTITION_KEY
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
        ORDER BY RECOMMENDATION_SEQ;
    
  4. Mit dieser Abfrage können Sie einen Drilldown im Bericht für eine bestimmte Tabelle durchführen, die bei der Ausführung analysiert wurde. In diesem Beispiel ist dies die Tabelle TPCH.LINEITEM.
    SELECT REPORT
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
            AND TABLE_OWNER = 'TPCH'
            AND TABLE_NAME  = 'LINEITEM';
    
  5. Wenden Sie die Empfehlung an, indem Sie die Prozedur APPLY_RECOMMENDATION ausführen.
    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
             RECOMMENDATION_ID => :RECOMMENDATION_ID);
    END;
    /

    Alternativ können Sie Empfehlungen für eine bestimmte analysierte Tabelle anwenden, in diesem Beispiel die Tabelle TPCH.LINEITEM.

    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
            RECOMMENDATION_ID => :RECOMMENDATION_ID,
            TABLE_OWNER       => 'TPCH',
            TABLE_NAME        => 'LINEITEM');
    END;
    /

Weitere Informationen finden Sie unter Prozedur CONFIGURE.

Informationen dazu finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Weitere Informationen finden Sie unter Prozedur APPLY_RECOMMENDATION.

Hinweis

Empfehlungen zur automatischen Partitionierung, die von der Funktion RECOMMEND_PARTITION_METHOD generiert wurden, haben ein durch den Parameter TIME_LIMIT angegebenes Zeitlimit mit einem Standardwert von 1 Tag. Wenn Sie ein großes System mit vielen in Frage kommenden Tabellen analysieren, generiert ein einzelner Aufruf möglicherweise keine Empfehlung für alle Tabellen, die partitioniert werden können. Sie können die Empfehlung zur automatischen Partitionierung wiederholt aufrufen, um Empfehlungen für zusätzliche Tabellen zu generieren. Wenn die Funktion aufgerufen wird und keine Zeilen in DBA_AUTO_PARTITION_RECOMMENDATIONS für die RECOMMENDATION_ID vorhanden sind, hat die Funktion keine weiteren Kandidatentabellen für die automatische Partitionierung gefunden.

Empfehlungen für in Frage kommende Tabellen generieren und automatisch anwenden

  1. Setzen Sie den Parameter AUTO_PARTITION_MODE auf REPORT ONLY, damit eine automatische Partitionierungsempfehlung abgegeben und verifiziert werden kann. Die Empfehlung wird nicht auf vorhandene Tabellen angewendet.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'IMPLEMENT');
    END;
    /
  2. Rufen Sie die DBMS_AUTO_PARTITION-API auf, um eine Empfehlungstabelle zu generieren.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD();
    END;
    /

    Die Recommendation-Analyse und -Verifizierung ist ein Vorgang mit Ressourcenintensität und langer Ausführungszeit, der viel Zeit in Anspruch nehmen kann. Bei sekundären Nicht-Produktionsdatenbanken empfiehlt Oracle, ausreichende Ressourcen für die Verifizierung bereitzustellen, indem der Service HIGH gewählt wird.

  3. Fragen Sie die View DBA_AUTO_PARTITION_RECOMMENDATIONS ab, um zu sehen, welche Tabellen analysiert wurden.
    SELECT TABLE_OWNER, TABLE_NAME, PARTITION_METHOD, PARTITION_KEY
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
        ORDER BY RECOMMENDATION_SEQ;
    
  4. Verwenden Sie die Funktion REPORT_LAST_ACTIVITY, um den Bericht über die Aktionen abzurufen, die während der letzten Ausführung ausgeführt wurden.
    SELECT DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY() FROM DUAL;
    

Weitere Informationen finden Sie unter Prozedur CONFIGURE.

Informationen dazu finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Informationen dazu finden Sie unter Funktion REPORT_LAST_ACTIVITY.

Data Dictionary Views für die automatische Partitionierung

Es gibt zwei neue und eine aktualisierte View im Data Dictionary für Informationen über die automatische Partitionierungskonfiguration und Empfehlungen in der Datenbank.

DBMS_AUTO_PARTITION DBA_AUTO_PARTITION_CONFIG Ansicht

Zeigt die aktuellen Konfigurationsparametereinstellungen für die automatische Partitionierung an.

Spalte Beschreibung
PARAMETER_NAME Name des Konfigurationsparameters
PARAMETER_VALUE Wert des Konfigurationsparameter
LAST_MODIFIED Zeit in UTC, zu der der Parameterwert zuletzt geändert wurde.
MODIFIED_BY Benutzer, der den Parameterwert zuletzt geändert hat

DBMS_AUTO_PARTITION DBA_AUTO_PARTITION_RECOMMENDATIONS Ansicht

Wenn Sie CONFIGURE oder RECOMMEND_PARTITION ausführen, werden die Ergebnisse aus diesen Prozeduren in dieser View gespeichert. RECOMMENDATION_ID wird in mehreren Prozeduren und Funktionen verwendet.

Spalte Beschreibung
TABLE_OWNER Tabelleneigentümer
TABLE_NAME Tabelleneigentümer
PARTITION_METHOD Empfohlene Partitionierungsmethode. Siehe Verfahren CONFIGURE
PARTITION_KEY Empfohlene Partition Schlüssel. NULL bedeutet, dass die Analyse abgeschlossen ist und empfohlen wird, die Tabelle nicht zu partitionieren.
GENERATE_TIMESTAMP Zeit in UTC, zu der diese Empfehlung generiert wurde.
RECOMMENDATION_ID ID, die mit DBMS_AUTO_PARTITION-APIs verwendet wird, um zusätzliche Informationen zu dieser Empfehlung abzurufen.
RECOMMENDATION_SEQ Wenn eine Empfehlungs-ID Empfehlungen für mehrere Tabellen enthält, geben Sie die Reihenfolge an, in der die Empfehlungen generiert wurden. Performanceberichte werden unter der Annahme generiert, dass frühere Empfehlungen angewendet wurden. Beispiel: Der Bericht für RECOMMENDATION_SEQ = 2 nimmt an, dass Empfehlungen sowohl für RECOMMENDATION_SEQ = 1 als auch für RECOMMENDATION_SEQ = 2 angewendet wurden.
MODIFY_TABLE_DDL DDL, mit der die Empfehlung angewendet wurde oder wurde.
APPLY_TIMESTAMP_START Zeit in UTC, zu der die Anwendung dieser Empfehlung gestartet wurde. NULL, wenn die Empfehlung nicht angewendet wurde.
APPLY_TIMESTAMP_END Zeit in UTC, zu der die Anwendung dieser Empfehlung beendet wurde. NULL, wenn die Empfehlung nicht angewendet wurde oder wenn die Anwendung nicht beendet ist.
REPORT SQL Performance Analyzer-Bericht aus SQL-Ausführung in der Datenbank nach Anwendung der Empfehlung.

DBMS_AUTO_PARTITION Aktualisierungen vorhandener Views

Erläutert die Änderungen an vorhandenen Views als Ergebnis der Implementierung der automatischen Partitionierung.

In *_PART_TABLES wurde die Spalte AUTO (VARCHAR2(3)) hinzugefügt. Ihre Werte:
  • YES: Wenn die Tabelle von DBMS_AUTO_PARTITION partitioniert wurde.
  • NO: Wenn die Tabelle nicht von DBMS_AUTO_PARTITION partitioniert wurde,