DBMS_AUTO_PARTITION-Package

Das Package DBMS_AUTO_PARTITION bietet administrative Routinen zur Verwaltung der automatischen Partitionierung von Schemas und Tabellen.

Prozedur CONFIGURE

Mit diesem Verfahren konfigurieren Sie Einstellungen für die automatische Partitionierung in Autonomous Database.

Syntax

DBMS_AUTO_PARTITION.CONFIGURE (
     PARAMETER_NAME     IN VARCHAR2,
     PARAMETER_VALUE    IN VARCHAR2,
     ALLOW              IN BOOLEAN    DEFAULT TRUE);

Parameter

Parameter Beschreibung

PARAMETER_NAME

Der zu aktualisierende Konfigurationsparameter der automatischen Partitionierung. Er kann einen der folgenden Werte haben:

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE bestimmt den Modus für den automatischen Partitionierungsvorgang und weist einen der folgenden Werte auf:
  • IMPLEMENT: In diesem Modus generiert die automatische Partitionierung einen Bericht und ändert die vorhandene Tabelle mit der empfohlenen Partitionierungsmethode.
  • REPORT ONLY: In diesem Modus generiert die automatische Partitionierung einen Bericht, vorhandene Tabellen werden jedoch nicht geändert. Dies ist das Standardverhalten.
  • OFF: In diesem Modus kann die automatische Partitionierung keine Empfehlungen generieren, berücksichtigen oder anwenden. Vorhandene automatisch partitionierte Tabellen werden nicht deaktiviert.
AUTO_PARTITION_SCHEMA legt Schemas fest, die bei der automatischen Partitionierung ein- oder ausgeschlossen werden sollen. Ihr Verhalten wird durch den Zulassungsparameter gesteuert. Der automatische Partitionierungsprozess verwaltet zwei Schemalisten.
  1. Die Einschlussliste ist die Liste der Schemas (unter Beachtung der Groß-/Kleinschreibung), die eine automatische Partitionierung verwenden können.
  2. Die Ausschlussliste ist die Liste der Schemas, bei denen die Groß-/Kleinschreibung beachtet wird und keine automatische Partitionierung verwendet werden kann.

Anfänglich sind beide Listen leer, und alle Schemas in der Datenbank können die automatische Partitionierung verwenden. Wenn die Inklusionsliste ein oder mehrere Schemas enthält, können nur die in der Inklusionsliste aufgeführten Schemas die automatische Partitionierung verwenden. Wenn die Inklusionsliste leer ist und die Exklusionsliste mindestens ein Schema enthält, verwenden alle Schemas mit Ausnahme der in der Exklusionsliste aufgeführten Schemas die automatische Partitionierung. Wenn beide Listen ein oder mehrere Schemas enthalten, verwenden alle Schemas mit Ausnahme der in der Exklusionsliste aufgeführten Schemas die automatische Partitionierung. AUTO_PARTITION_TABLE legt Tabellen fest, die bei der automatischen Partitionierung ein- oder ausgeschlossen werden sollen. Der Parameterwert lautet <schema_name>.<table_name>. Der automatische Partitionierungsprozess verwaltet zwei Tabellenlisten.

  1. Die Einschlussliste ist die Liste der Tabellen, bei denen die Groß-/Kleinschreibung beachtet wird und bei denen die automatische Partitionierung verwendet werden kann.
  2. Die Ausschlussliste ist die Liste der Tabellen, bei denen die Groß- und Kleinschreibung beachtet wird und keine automatische Partitionierung verwendet werden kann.

Anfänglich sind beide Listen leer, und alle Tabellen in der Datenbank können die automatische Partitionierung verwenden. Wenn die Inklusionsliste eine oder mehrere Tabellen enthält, können nur die in der Inklusionsliste aufgeführten Tabellen die automatische Partitionierung verwenden. Wenn die Inklusionsliste leer ist und die Exklusionsliste mindestens eine Tabelle enthält, verwenden alle Tabellen mit Ausnahme der in der Exklusionsliste aufgeführten automatische Partitionierung. Wenn beide Listen mindestens eine Tabelle enthalten, verwenden alle Tabellen mit Ausnahme der Tabellen, die in der Exklusionsliste aufgeführt sind, die automatische Partitionierung. Wenn eine Tabelle in keiner der Listen enthalten ist, entscheiden die Ein- und Ausschlusslisten für Schemas, ob eine Tabelle für die automatische Partitionierung in Frage kommt. Wenn ein Konflikt zwischen den Listen auf Schemaebene und den Listen auf Tabellenebene besteht, haben die Listen auf Tabellenebene Vorrang.

So entfernen Sie alle Tabellen aus Ein- und Exklusionslisten:
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION bestimmt die Anzahl der Tage, für die automatische Partitionierungslogs in der Datenbank aufbewahrt werden, bevor sie gelöscht werden. Ein Bericht zur automatischen Partitionierung kann nicht über den für diesen Wert angegebenen Wert hinaus generiert werden. Der Standardwert beträgt 90 Tage.

PARAMETER_VALUE

Wert für die in parameter_name angegebene Konfigurationseinstellung. Wenn diese Eigenschaft auf NULL gesetzt ist, wird der Konfigurationseinstellung der Standardwert zugewiesen.

ALLOW

Gilt nur für die Konfigurationseinstellungen AUTO_PARTITION_SCHEMA oder AUTO_PARTITION_TABLE mit einem der folgenden Werte:
  • TRUE fügt das angegebene Schema oder die angegebene Tabelle der Einschlussliste hinzu.
  • FALSE entfernt das angegebene Schema oder die angegebene Tabelle aus der Exklusionsliste.
  • NULL entfernt das angegebene Schema oder die angegebene Tabelle aus der Liste, der es oder sie derzeit zugewiesen ist.
Weitere Informationen zu Inklusions- und Exklusionslisten finden Sie in der Beschreibung der Konfigurationseinstellungen für AUTO_PARTITION_SCHEMA und AUTO_PARTITION_TABLE.

Hinweise zur Verwendung

  • Sie können die aktuelle Einstellung für die automatische Partitionierungskonfiguration mit der folgenden SQL prüfen:

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • 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.

VALIDATE_CANDIDATE_TABLE-Funktion

Diese Funktion prüft, ob die angegebene Tabelle für die automatische Partitionierung in Autonomous Database in Frage kommt.

Kriterien

Um ein gültiger Kandidat zu sein, müssen die folgenden Tests erfolgreich sein:
  • Die Tabelle besteht Einschluss- und Exklusionstests, die mit den Konfigurationsparametern AUTO_PARTITION_SCHEMA und AUTO_PARTITION_TABLE angegeben werden.
  • Die Tabelle ist vorhanden und enthält aktuelle Statistiken.
  • Die Tabelle umfasst mindestens 64 GB.
  • Die Tabelle enthält 5 oder mehr Abfragen in dem SQL Tuning Set, das die Tabelle gescannt hat.
  • Die Tabelle enthält keine Spalte mit Datentyp LONG.
  • Die Tabelle wurde nicht manuell partitioniert.
  • Die Tabelle ist keine externe Tabelle, keine interne/externe Hybridtabelle, keine temporäre Tabelle, keine indexorganisierte Tabelle und keine geclusterte Tabelle.
  • Die Tabelle hat keinen Domainindex oder Bitmap Join-Index.
  • Die Tabelle ist keine Advanced Queuing-, Materialized View- oder Flashback Archive Storage-Tabelle.
  • Die Tabelle enthält keine verschachtelten Tabellen und keine bestimmten anderen Objektfeatures.
Rückgabewerte:
  • VALID, wenn die Tabelle ein gültiger Kandidat für die autonome Partitionierung ist
  • INVALID: <reason>, wenn die Tabelle kein gültiger Kandidat für die autonome Partitionierung ist. <reason> ist eine Zeichenfolge, die beschreibt, warum die Tabelle kein gültiger Kandidat ist.

Syntax

DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
    ( SQLSET_OWNER  IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME   IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER   IN VARCHAR2,
      TABLE_NAME    IN VARCHAR2)
RETURN VARCHAR2;

Parameter

Parameter Beschreibung

SQLSET_OWNER, SQLSET_NAME

Name des SQL Tuning Sets, das die auszuwertende Workload darstellt.

TABLE_OWNER, TABLE_NAME

Name einer Tabelle, die als Kandidat für die automatische Partitionierung validiert werden soll.

Hinweise zur Verwendung

  • Beispiel: Sie können die Gültigkeit einer Beispieltabelle LINEORDER im Schema TEST mit der folgenden SQL prüfen:
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

Funktion RECOMMEND_PARTITION_METHOD

Diese Funktion gibt eine Empfehlungs-ID zurück, die mit der Prozedur APPLY_RECOMMENDATION verwendet werden kann, um die Empfehlung anzuwenden, oder mit der View DBA_AUTO_PARTITION_RECOMMENDATIONS, um Details der Empfehlungen für die automatische Partitionierung in Autonomous Database abzurufen.

Syntax

DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD
    ( SQLSET_OWNER     IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME      IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER      IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME       IN VARCHAR2   DEFAULT NULL,
      TIME_LIMIT       IN INTERVAL DAY TO SECOND DEFAULT INTERVAL '1' DAY,
      REPORT_TYPE      IN VARCHAR2   DEFAULT 'TEXT',   
      REPORT_SECTION   IN VARCHAR2   DEFAULT 'SUMMARY',
      REPORT_LEVEL     IN VARCHAR2   DEFAULT 'TYPICAL')
  RETURN RAW;

Parameter

Parameter Beschreibung

SQLSET_OWNER, SQLSET_NAME

Name des SQL Tuning Sets, das die auszuwertende Workload darstellt.

TABLE_OWNER, TABLE_NAME

Name einer Tabelle, die als Kandidat für die automatische Partitionierung validiert werden soll.

TIME_LIMIT

Wenn die Funktion die Tabellen wählt, für die Empfehlungen generiert werden sollen (TABLE_OWNER und TABLE_NAME sind NULL), begrenzt der Parameter, wie lange die Funktion ausgeführt wird, bevor sie nicht mehr nach neuen Kandidatentabellen für die Partitionierung sucht. Wenn die Verarbeitung einer Tabelle gestartet wurde, wird der Prozess nicht mehr beendet. Es wird erwartet, dass die Ausführung der Funktion länger dauert als durch diesen Parameter angegeben. Lautet dieser Parameter NULL, gibt es kein Zeitlimit. Die Standardzeit beträgt 1 Tag.

REPORT_TYPE

Wird zum Generieren eines Berichts für die empfohlene Partitionsmethode verwendet. Weitere Einzelheiten finden Sie unter Funktion REPORT_ACTIVITY.

REPORT_SECTION

Wird zum Generieren eines persistenten Berichts für die empfohlene Partitionsmethode verwendet. Weitere Einzelheiten finden Sie unter Funktion REPORT_ACTIVITY.

REPORT_LEVEL

Wird zum Generieren eines Berichts für die empfohlene Partitionsmethode verwendet. Weitere Einzelheiten finden Sie unter Funktion REPORT_ACTIVITY.

Hinweise zur Verwendung

  • Die AUTO_PARTITION_MODE steuert die von dieser Funktion ausgeführten Aktionen:
    • IMPLEMENT: In diesem Modus generiert die automatische Partitionierung einen Bericht und ändert die vorhandene Tabelle mit der empfohlenen Partitionierungsmethode.
    • REPORT ONLY: In diesem Modus generiert die automatische Partitionierung einen Bericht, vorhandene Tabellen werden jedoch nicht geändert. Dies ist das Standardverhalten.
    • OFF: In diesem Modus konnte die automatische Partitionierung keine neuen Empfehlungen erzeugen, berücksichtigen oder anwenden. Vorhandene automatisch partitionierte Tabellen werden nicht deaktiviert.
  • 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.

Werte zurückgeben

Diese Funktion gibt eine Empfehlungs-ID zurück, die wie folgt verwendet werden kann: DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION, um die Empfehlung anzuwenden,

  • Verwendung mit DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION, um die Empfehlung anzuwenden.
  • Verwendung mit der View DBA_AUTO_PARTITION_RECOMMENDATIONS, um Details der Empfehlungen abzurufen. Beispiele:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATION-Prozedur

Diese Prozedur wendet die angegebene Empfehlung in einer Autonomous Database an.

Syntax

DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION
    ( RECOMMENDATION_ID  IN RAW,
      TABLE_OWNER        IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME         IN VARCHAR2   DEFAULT NULL);

Parameter

Parameter Beschreibung

RECOMMENDATION_ID

Empfehlungs-ID, die von der Funktion RECOMMEND_PARTITION_METHOD zurückgegeben oder aus der View DBA_AUTO_PARTITION_RECOMMENDATIONS abgefragt wird.

TABLE_OWNER, TABLE_NAME

Wenn eine einzelne Empfehlungs-ID Empfehlungen für mehrere Tabellen enthält, können Sie mit diesem optionalen Parameter steuern, welche Tabellen partitioniert werden.
  • Wenn die Parameter NULL sind, partitionieren Sie alle Tabellen, die in der angegebenen Empfehlungs-ID empfohlen werden.
  • Wenn ein Tabellenname angegeben wird, partitionieren Sie nur die benannte Tabelle.
  • Wenn TABLE_OWNER oder TABLE_NAME NOT NULL ist, müssen beide NOT NULL sein.

Hinweis zur Verwendung:

Unabhängig von AUTO_PARTITION_MODE löst diese Prozedur einen Fehler ORA-20000: recommendation_id was not found aus, wenn entweder keine akzeptierten Empfehlungen mit der RECOMMENDATION_ID verknüpft sind oder alle akzeptierten Empfehlungen, die mit der RECOMMENDATION_ID verknüpft sind, bereits angewendet wurden. Der erste Fall trifft zu, wenn RECOMMENDATION_ID mit AUTO_PARTITION_MODE = OFF generiert wurde. Der zweite Fall trifft zu, wenn RECOMMENDATION_ID mit AUTO_PARTITION_MODE = IMPLEMENT generiert wurde.

Funktion REPORT_ACTIVITY

Diese Funktion gibt einen Bericht über die automatischen Partitionierungsvorgänge zurück, die in einem bestimmten Zeitraum in einer Autonomous Database ausgeführt wurden.

Syntax

DBMS_AUTO_PARTITION.REPORT_ACTIVITY
    ( ACTIVITY_START     IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      ACTIVITY_END       IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      TYPE               IN VARCHAR2                 DEFAULT 'TEXT',
      SECTION            IN VARCHAR2                 DEFAULT 'ALL',
      LEVEL              IN VARCHAR2                 DEFAULT 'TYPICAL')
RETURN CLOB;

Parameter

Parameter Beschreibung

ACTIVITY_START

Startzeit, ab der automatische Partitionierungsvorgänge für den Bericht verwendet werden sollen. Wenn kein Wert oder NULL angegeben ist, wird der Bericht für den zuletzt ausgeführten automatischen Partitionierungsvorgang generiert.

ACTIVITY_END

Endzeit, bis zu der automatische Partitionierungsvorgänge für den Bericht verwendet werden sollen. Wenn kein Wert oder NULL angegeben ist, wird der Bericht für den zuletzt ausgeführten automatischen Partitionierungsvorgang generiert.

TYPE

Format des Berichts mit einem der folgenden Werte:
  • TEXT (Standard)
  • HTML
  • XML

SECTION

Abschnitte, die in den Bericht aufgenommen werden sollen, mit einem der folgenden Werte:
  • SUMMARY: Nur die Workload-Zusammenfassung in den Bericht aufnehmen
  • ALL = Alle Abschnitte in den Bericht aufnehmen (Standard).

level

Informationsebene, die in den Bericht aufgenommen werden soll, mit einem der folgenden Werte:
  • TYPICAL: Typische Informationen zur automatischen Partitionierung in den Bericht aufnehmen (Standard).
  • CHANGED: Nur SQL mit geänderter Performance in den Bericht aufnehmen.
  • IMPROVED: Nur SQL mit verbesserter Performance in den Bericht aufnehmen.
  • REGRESSED: Nur SQL mit verschlechterter Performance in den Bericht aufnehmen.
  • UNCHANGED: Nur SQL mit gleicher Performance in den Bericht aufnehmen.
  • ALL: Alle Informationen zur automatischen Partitionierung in den Bericht aufnehmen.

Hinweise zur Verwendung

Gibt einen Performanceanalysebericht für die Workload zurück, der nach Anwendung der Empfehlung für die Datenbank ausgeführt wird. Dieser Bericht wird mit der Empfehlung nicht dauerhaft gespeichert.

Funktion REPORT_LAST_ACTIVITY

Diese Funktion gibt einen Bericht über den letzten automatischen Partitionierungsvorgang zurück, der in einer Autonomous Database ausgeführt wurde.

Syntax

DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY
    ( TYPE    IN VARCHAR2 DEFAULT 'TEXT',
      SECTION IN VARCHAR2 DEFAULT 'ALL',
      LEVEL   IN VARCHAR2 DEFAULT 'TYPICAL')
RETURN CLOB;

Parameter

Parameter Beschreibung

TYPE

Informationen zum Ausgabeformat des Berichts finden Sie unter Funktion REPORT_ACTIVITY.

SECTION

Informationen zu den im Bericht enthaltenen Abschnitten finden Sie unter Funktion REPORT_ACTIVITY.

LEVEL

Informationen zur Ebene der Informationen im Bericht finden Sie unter Funktion REPORT_ACTIVITY.

Hinweise zur Verwendung

Gibt Folgendes zurück: einen Performanceanalysebericht für die Workload, der in der Datenbank ausgeführt wird, nachdem die letzte Empfehlung angewendet wurde. Dieser Bericht wird mit der Empfehlung nicht dauerhaft gespeichert.