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 keine vorhandenen Partitionierungsstrategien und ergänzt die manuelle Partitionierung in Autonomous Database. Manuell 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, müssen Sie die Anwendungs-Workload und die Datenverteilung genau kennen. Wenn Sie die manuelle Partitionierung durchführen, müssen Sie die Arbeitslast analysieren und wä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 profitieren, ohne manuelle Schema- und Workload-Analysen durchführen zu müssen.

Bei der automatischen Partitionierung wird ein einspaltiger Partitionsschlüssel in Kombination mit einer Partitionierung auf einer Ebene verwendet. Die automatische Partitionierung unterstützt keine komplexeren Partitionierungsstrategien wie mehrspaltige partitionierte Tabellen oder Composite-Partitionierung.

Bei der automatischen Partitionierung werden folgende Partitionsmethoden gewählt:

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

Weitere Informationen finden Sie unter Partitionierungskonzepte.

Die automatische Partitionierung bietet folgende Funktionen:

  • Analysiert die Anwendungs-Workload und ermittelt die optimale Partitionierungsstrategie, um die Abfrage-Performance für Tabellen zu verbessern, die für die automatische Partitionierung geeignet sind.
  • Stellt PL/SQL-APIs bereit, mit denen die automatische Partitionierung in einer Datenbank konfiguriert, Berichte über Partitionierungsergebnisse generiert und eine identifizierte Partitionierungsstrategie für eine bestimmte Workload generiert und angewendet werden kann.
Hinweis

Bei der automatischen 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 identifiziert die automatische Partitionierung Kandidatentabellen für die automatische Partitionierung, wertet Partitionsschemas aus und implementiert eine Partitionierungsstrategie.

Wenn Sie die automatische Partitionierung aufrufen, werden folgende Aufgaben ausgeführt:

  1. Gibt Kandidatentabellen für die automatische Partitionierung an, indem die Arbeitsauslastung 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 Arbeitslast kann ein Beispiel von Abfragen berücksichtigt werden.

  2. Bewertet Partitionsschemas basierend auf Workload-Analyse, Quantifizierung und Überprüfung der Performancevorteile:

    1. Leere Partitionsschemas für Kandidaten mit synthetischen Statistiken werden intern erstellt und auf Performance analysiert.

    2. Das Kandidatenschema mit der höchsten geschätzten I/O-Reduktion 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 für die Tabellen, die von den automatischen Partitionierungsverfahren analysiert werden, sofern entsprechend konfiguriert.

Automatische Partitionierung konfigurieren

Verwenden Sie das Verfahren DBMS_AUTO_PARTITION.CONFIGURE, um automatische Partitionierungsoptionen zu konfigurieren.

Empfehlungen aktivieren und implementieren

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

Empfehlungen aktivieren, aber diese Empfehlungen nicht implementieren

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

Deaktivieren neuer Empfehlungen und Umsetzung dieser neuen Empfehlungen

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

In diesem Modus werden vorhandene automatisch partitionierte Tabellen nicht deaktiviert.

Schemata 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 berücksichtigt werden.
Hinweis

Wenn die automatische Partitionierung aufgerufen wird, werden alle Schemas und Tabellen in benutzerverwalteten Schemas für die automatische Partitionierung berücksichtigt, wenn sowohl die Einschluss- als auch die Ausschlusslisten leer sind.
  • Wenn die Einschlussliste und die Ausschlussliste leer sind, fügen Sie das Schema HR und die Tabelle SH.SALES der Ausschlussliste hinzu, sodass nur diese Objekte keine automatische Partitionierungsanalyse 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 das Schema HR mit dem folgenden Befehl aus der Ausschlussliste.

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

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => NULL,
             ALLOW           => TRUE);
    END;
    /
  • Wenn die Ein- und Ausschlusslisten leer sind, wird im folgenden Beispiel das Schema HR zur Einschlussliste 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

Legen Sie den Aufbewahrungszeitraum für automatische Partitionierungsberichte auf 365 Tage fest.

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

Automatische Partitionierung verwenden

Beschreibt den Ablauf und allgemeine Prozesse zur Verwendung und Verwaltung der automatischen Partitionierung in Autonomous Database.

  1. Datenbank für automatische Partitionierung auswählen.

    Im Allgemeinen empfiehlt Oracle die automatische Partitionierung in geklonten oder manuell erstellten Datenbanken anstelle von Produktionsdatenbanken. Die Analyse und Verifizierung der automatischen Partitionierung mit RECOMMEND_PARTITION_METHOD ist möglicherweise ein ressourcenintensiver und langwieriger Vorgang, der Ihrer Datenbank unerwünschte Verarbeitung hinzufügen kann.

    Um eine sekundäre Datenbank für die automatische Partitionierungsanalyse verwenden zu können, muss die Datenbank über Informationen zu Ihrer Workload in einem intern verwalteten SQL-Workload Repository verfügen.

    1. Verwenden Sie eine geklonte Datenbank zur automatischen Partitionierung.

      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 klonen, nachdem Sie die Workload eine Weile ausgeführt haben, enthält der Klon die erforderlichen Workload-Informationen. Sie können die automatische Partitionierung mit solchen Klonen ohne zusätzliche Aktionen verwenden.

      Siehe Autonomous Database-Instanz klonen

    2. Verwenden Sie andere Datenbanken zur automatischen Partitionierung.

      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 zur automatischen Partitionierung verwendet werden, unabhängig davon, ob sie geklont oder manuell erstellt wurde.

  2. Automatische Partitionierung empfehlen.

    Verwenden Sie RECOMMEND_PARTITION_METHOD, um die Datenbank, bestimmte Schemas oder bestimmte Tabellen zu analysieren und gegebenenfalls die optimale Partitionierungsstrategie zu identifizieren. Die Empfehlung analysiert Ihre Workload und Schemas und prüft die Performancevorteile, indem die Workload für eine intern erstellte Auxiliary-Tabelle ausgeführt wird. Dies kann ein ressourcenintensiver und langwieriger Vorgang sein, bei dem CPU und I/O erforderlich sind, um die Auxiliary-Tabelle zu erstellen und die Performance zu überprüfen. Sie benötigen auch vorübergehend zusätzlichen Platz, von 1 - 1,5 mal, Ihren größten Kandidatentisch.

  3. Anwendung der Empfehlung.

    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 Datenbank extrahiert werden, die für die Analyse verwendet wird, und auf jede Datenbank angewendet werden, z. B. ein Produktionssystem. Das Skript, das für die manuelle Änderung erforderlich ist, wird in Spalte MODIFY_TABLE_DDL in der Ansicht DBA_AUTO_PARTITION_RECOMMENDATION gespeichert.

    Oracle empfiehlt, die automatische Partitionierung außerhalb der Spitzenzeiten auf die Datenbank anzuwenden. Während Ihre Tabellen in automatisch partitionierte Tabellen geändert werden, fügt die Konvertierung Ihrem System zusätzliche Ressourcenanforderungen hinzu, wie zusätzliche CPU und I/O. Für die automatische Partitionierung muss die Größe der Tabelle bis zum 1,5-fachen als zusätzlicher freier Speicherplatz geändert werden, je nach gleichzeitig laufenden DML-Vorgängen für diese Tabellen.

Automatische Partitionierungsberichte generieren

Generieren Sie automatische Partitionierungsberichte mit den Funktionen REPORT_ACTIVITY und REPORT_LAST_ACTIVITY des Packages DBMS_AUTO_PARTITION.

Generieren eines Berichts im Nur-Text-Format für automatische Partitionierungsvorgänge für einen bestimmten Zeitraum

In diesem Beispiel wird ein Bericht generiert, der typische Informationen zu den automatischen Partitionierungsvorgängen der letzten 24 Stunden enthält. Der Bericht wird standardmäßig im Nur-Text-Format generiert.

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

Generieren eines Berichts im HTML-Format für automatische Partitionierungsvorgänge für MAY 2021

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

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 im Klartextformat des letzten automatischen Partitionierungsvorgangs generieren

In diesem Beispiel wird ein Bericht generiert, der typische Informationen zum letzten automatischen Partitionierungsvorgang enthält. Der Bericht wird standardmäßig im Nur-Text-Format 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 bei der automatischen Partitionierung

Beispielszenarios für die automatische Partitionierung mit den API-Prozeduren und -Funktionen DBMS_AUTO_PARTITION.

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 erstellt und geprüft 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. Stellen Sie sicher, dass die Tabelle TPCH.LINEITEM ein Kandidat für die automatische Partitionierung ist. Dieser Schritt ist optional und wird empfohlen, wenn Sie selektiv einzelne Tabellen als Ziel verwenden.
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE(
               TABLE_OWNER => 'TPCH',
               TABLE_NAME  => 'LINEITEM')
    FROM DUAL;

    Wenn die Tabelle ein gültiger Kandidat ist, wird beim Aufruf der automatischen Partitionierung für eine Empfehlungsanalyse VALID zurückgegeben. Andernfalls werden die Verletzungskriterien angezeigt.

    Eine Liste der Kriterien für berechtigte Kandidatentabellen finden Sie unter VALIDATE_CANDIDATE_TABLE Funktion.

  3. Rufen Sie die API DBMS_AUTO_PARTITION 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 ressourcenintensiv und langwierig sein und viel Zeit in Anspruch nehmen. Führen Sie diesen Schritt für eine Datenbank aus, die nicht das primäre Produktionssystem ist. Oracle empfiehlt, dass Sie der Prüfung ausreichende Ressourcen zur Verfügung stellen, indem Sie den HIGH-Service wählen.

  4. Prüfen Sie die Empfehlung. Die Ansicht DBA_AUTO_PARTITION_RECOMMENDATIONS enthält die Informationen zur Empfehlung. Prüfen Sie in diesem Beispiel 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 Ansicht ab, um den Performanceanalysebericht abzurufen, der für die Workload generiert wurde, nachdem die Tabelle gemäß 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, wenden Sie die Empfehlung an, indem Sie die Prozedur APPLY_RECOMMENDATION ausführen.
    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
             RECOMMENDATION_ID => :RECOMMENDATION_ID);
    END;
    /

    Wenn Sie die Empfehlung auf eine andere Datenbank anwenden möchten, z.B. auf Ihre Produktionsumgebung, extrahieren Sie die Änderungs-DDL. Führen Sie dann die extrahierte Änderungs-DDL in der Zieldatenbank aus. Die Abfrage zum Extrahieren 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. Prüfen Sie, ob die Tabelle automatisch partitioniert wurde, und fragen Sie die Katalogansichten ab.
    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, wann 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 CONFIGURE Procedure.

Weitere Informationen finden Sie unter Funktion VALIDATE_CANDIDATE_TABLE.

Weitere Informationen finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Weitere Informationen finden Sie unter Prozedur APPLY_RECOMMENDATION.

Empfehlung für berechtigte Tabellen generieren und Empfehlung manuell anwenden

  1. Setzen Sie den Parameter AUTO_PARTITION_MODE auf REPORT ONLY, damit eine automatische Partitionierungsempfehlung erstellt und geprüft 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 API DBMS_AUTO_PARTITION 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 Empfehlungsanalyse und -prüfung ist ein ressourcenintensiver und langwieriger Betrieb und kann viel Zeit in Anspruch nehmen. Bei sekundären Nicht-Produktionsdatenbanken empfiehlt Oracle, dass Sie über die Option "Service HIGH" ausreichend Ressourcen für die Verifizierung angeben.

  3. Fragen Sie die Ansicht 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 diese Abfrage, um einen Drilldown im Bericht für eine bestimmte Tabelle durchzuführen, die bei der Ausführung analysiert wurde. Die Tabelle TPCH.LINEITEM in diesem Beispiel.
    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;
    /

    Wenden Sie alternativ Empfehlungen für eine bestimmte Tabelle an, die analysiert wurde, die Tabelle TPCH.LINEITEM in diesem Beispiel.

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

Weitere Informationen finden Sie unter CONFIGURE Procedure.

Weitere Informationen finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Weitere Informationen finden Sie unter Prozedur APPLY_RECOMMENDATION.

Hinweis

Empfehlungen der automatischen Partitionierung, die von der Funktion RECOMMEND_PARTITION_METHOD generiert werden, weisen ein Zeitlimit auf, das durch den Parameter TIME_LIMIT angegeben wird, wobei der Standardwert 1 Tag ist. Wenn Sie ein großes System mit vielen Kandidatentabellen analysieren, generiert ein einzelner Aufruf möglicherweise keine Empfehlung für alle Tabellen, die partitioniert werden können. Sie können die Empfehlung für die automatische Partitionierung sicher wiederholt aufrufen, um Empfehlungen für zusätzliche Tabellen zu generieren. Wenn die Funktion aufgerufen wird und null Zeilen in DBA_AUTO_PARTITION_RECOMMENDATIONS für die RECOMMENDATION_ID enthalten sind, hat die Funktion keine zusätzlichen Kandidatentabellen für die automatische Partitionierung gefunden.

Empfehlungen für berechtigte Tabellen generieren und automatisch anwenden

  1. Setzen Sie den Parameter AUTO_PARTITION_MODE auf REPORT ONLY, damit eine automatische Partitionierungsempfehlung erstellt und geprüft 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 API DBMS_AUTO_PARTITION 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 Empfehlungsanalyse und -prüfung ist ein ressourcenintensiver und langwieriger Betrieb und kann viel Zeit in Anspruch nehmen. Bei sekundären Nicht-Produktionsdatenbanken empfiehlt Oracle, dass Sie über die Option "Service HIGH" ausreichend Ressourcen für die Verifizierung angeben.

  3. Fragen Sie die Ansicht 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 CONFIGURE Procedure.

Weitere Informationen finden Sie unter Funktion RECOMMEND_PARTITION_METHOD.

Weitere Informationen finden Sie unter Funktion REPORT_LAST_ACTIVITY.

Data Dictionary Views für die automatische Partitionierung

Es gibt zwei neue Views und eine aktualisierte View im Data Dictionary für Informationen zur Konfiguration der automatischen Partitionierung 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 Konfigurationsparameters
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 dieser Prozeduren in dieser Ansicht gespeichert. Die RECOMMENDATION_ID wird in mehreren Prozeduren und Funktionen verwendet.

Spalte Beschreibung
TABLE_OWNER Tabelleneigentümer
TABLE_NAME Tabelleneigentümer
PARTITION_METHOD Empfohlene Partitionsmethode. Siehe CONFIGURE-Prozedur
PARTITION_KEY Empfohlener Partitionsschlüssel. NULL bedeutet, dass die Analyse abgeschlossen ist und die Empfehlung nicht darin besteht, die Tabelle zu partitionieren.
GENERATE_TIMESTAMP Zeit in UTC, als 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. Leistungsberichte werden generiert, wenn frühere Empfehlungen angewendet wurden. Beispiel: Der Bericht für RECOMMENDATION_SEQ = 2 geht davon aus, dass Empfehlungen sowohl für RECOMMENDATION_SEQ = 1 als auch für RECOMMENDATION_SEQ = 2 angewendet wurden.
MODIFY_TABLE_DDL DDL, das zur Anwendung der Empfehlung verwendet wurde oder wurde.
APPLY_TIMESTAMP_START Zeit in UTC, als die Anwendung dieser Empfehlung gestartet wurde. NULL, wenn die Empfehlung nicht angewendet wurde.
APPLY_TIMESTAMP_END Zeit in UTC, als die Anwendung dieser Empfehlung abgeschlossen wurde. NULL, wenn die Empfehlung nicht angewendet wurde oder die Anwendung nicht beendet wurde.
REPORT SQL Performance Analyzer-Bericht aus SQL-Ausführung in der Datenbank, nachdem die Empfehlung angewendet wurde.

DBMS_AUTO_PARTITION Aktualisierungen vorhandener Ansichten

Erörtert die Änderungen an vorhandenen Views infolge der Implementierung der automatischen Partitionierung.

In *_PART_TABLES wurde die Spalte AUTO (VARCHAR2(3)) hinzugefügt. Die Werte lauten wie folgt:
  • YES: Wenn die Tabelle durch DBMS_AUTO_PARTITION partitioniert wurde.
  • NO: Wenn die Tabelle nicht durch DBMS_AUTO_PARTITION partitioniert wurde.