DBMS_AUTO_PARTITION-Package

Das DBMS_AUTO_PARTITION-Package stellt administrative Routinen zur Verwaltung der automatischen Partitionierung von Schemas und Tabellen bereit.

KONFIGURATION

Mit dieser Prozedur werden Einstellungen für die automatische Partitionierung in Autonomous Database konfiguriert.

Syntax

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

Parameter

Parameter Beschreibung

PARAMETER_NAME

Name des zu aktualisierenden Konfigurationsparameters für die automatische Partitionierung. Es kann einen der folgenden Werte haben:

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE legt den Modus der automatischen Partitionierung fest und hat einen der folgenden Werte:
  • IMPLEMENT: In diesem Modus generiert die automatische Partitionierung einen Bericht und ändert die vorhandene Tabelle mit der empfohlenen Partitionsmethode.
  • 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 wird die automatische Partitionierung daran gehindert, Empfehlungen zu generieren, zu berücksichtigen oder anzuwenden. Vorhandene automatisch partitionierte Tabellen werden nicht deaktiviert.
AUTO_PARTITION_SCHEMA legt Schemas fest, die bei der automatischen Partitionierung ein- oder ausgeschlossen werden sollen. Sein Verhalten wird durch den Parameter allow gesteuert. Der automatische Partitionierungsprozess verwaltet zwei Schemalisten.
  1. Inklusionsliste ist die Liste der Schemas, bei denen die Groß-/Kleinschreibung beachtet wird und die automatische Partitionierung verwendet werden kann.
  2. Die Ausschlussliste ist die Liste der Schemas, bei denen die Groß-/Kleinschreibung beachtet wird und die keine automatische Partitionierung verwenden können.

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

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

Anfangs sind beide Listen leer, und alle Tabellen in der Datenbank können die automatische Partitionierung verwenden. Wenn die Einschlussliste eine oder mehrere Tabellen enthält, können nur die in der Einschlussliste aufgeführten Tabellen die automatische Partitionierung verwenden. Wenn die Einschlussliste leer ist und die Ausschlussliste eine oder mehrere Tabellen enthält, verwenden alle Tabellen die automatische Partitionierung mit Ausnahme der Tabellen, die in der Ausschlussliste aufgeführt sind. Wenn beide Listen eine oder mehrere Tabellen enthalten, verwenden alle Tabellen die automatische Partitionierung mit Ausnahme der Tabellen, die in der Ausschlussliste aufgeführt sind. Wenn sich eine Tabelle nicht in einer der Listen befindet, entscheiden die Ein- und Ausschlusslisten des Schemas, ob eine Tabelle eine Kandidatentabelle für die automatische Partitionierung ist. 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 Einschluss- und Ausschlusslisten:
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION legt die Anzahl der Tage fest, für die automatische Partitionierungslogs in der Datenbank beibehalten werden, bevor sie gelöscht werden. Für eine Periode, die über den für diesen Wert angegebenen Wert hinausgeht, kann kein automatischer Partitionierungsbericht generiert werden. Der Standardwert beträgt 90 Tage.

PARAMETER_VALUE

Wert für die Konfigurationseinstellung, die in parameter_name angegeben ist. Wenn dieser Wert 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 der Einschlussliste das angegebene Schema oder die angegebene Tabelle hinzu.
  • FALSE entfernt das angegebene Schema oder die angegebene Tabelle aus der Ausschlussliste.
  • NULL entfernt das angegebene Schema oder die angegebene Tabelle aus der Liste, der aktuell zugewiesen ist.
Weitere Informationen zu Einschluss- und Ausschlusslisten finden Sie in der Beschreibung der Konfigurationseinstellungen AUTO_PARTITION_SCHEMA und AUTO_PARTITION_TABLE.

Hinweise zur Verwendung

  • Mit der folgenden SQL-Anweisung können Sie die aktuelle Einstellung für die automatische Partitionierungskonfiguration 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.

Funktion VALIDATE_CANDIDATE_TABLE

Diese Funktion prüft, ob die angegebene Tabelle ein gültiger Kandidat für die automatische Partitionierung in Autonomous Database ist.

Gültige Kandidaten

Um ein gültiger Kandidat zu sein, müssen die folgenden Tests erfolgreich sein:
  • Die Tabelle besteht Einschluss- und Ausschlusstests, die von den Konfigurationsparametern AUTO_PARTITION_SCHEMA und AUTO_PARTITION_TABLE angegeben werden.
  • Die Tabelle ist vorhanden und enthält aktuelle Statistiken.
  • Die Tabelle beträgt mindestens 64 GB.
  • Die Tabelle enthält 5 oder mehr Abfragen im SQL Tuning Set, das die Tabelle gescannt hat.
  • Die Tabelle enthält keine Spalte des Datentyps LONG.
  • Tabelle ist nicht manuell partitioniert.
  • Tabelle ist keine externe Tabelle, eine interne/externe Hybridtabelle, eine temporäre Tabelle, eine indexorganisierte Tabelle oder eine geclusterte Tabelle.
  • Tabelle enthält keinen Domainindex oder Bitmap Join-Index.
  • Die Tabelle ist keine erweiterte Queuing-, Materialized View- oder Flashback Archive-Speichertabelle.
  • Tabelle enthält keine Nested Tables oder bestimmte andere Objektfeatures.
Rücksendungen:
  • 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 und <reason> eine Zeichenfolge ist, 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 in 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 zum Anwenden der Empfehlung verwendet werden kann. Sie kann auch mit der View DBA_AUTO_PARTITION_RECOMMENDATIONS verwendet werden, 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 auswählt, für die Empfehlungen generiert werden sollen, sind TABLE_OWNER und TABLE_NAME NULL), begrenzt der Parameter, wie lange die Funktion ausgeführt wird, bevor sie nicht mehr nach neuen Kandidatentabellen sucht, um sie zu partitionieren. Sobald die Verarbeitung einer Tabelle gestartet wurde, wird der Prozess nicht beendet. Es wird erwartet, dass die Funktion länger ausgeführt wird als dieser Parameter. Wenn dieser Parameter NULL ist, gibt es kein Zeitlimit. Die Standardzeit beträgt 1 Tag.

REPORT_TYPE

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

REPORT_SECTION

Wird verwendet, um einen persistenten Bericht für die empfohlene Partitionsmethode zu generieren. Weitere Informationen finden Sie unter Funktion REPORT_ACTIVITY.

REPORT_LEVEL

Wird zum Generieren des Berichts für die empfohlene Partitionsmethode verwendet. Weitere Informationen 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 Partitionsmethode.
    • REPORT ONLY: In diesem Modus generiert die automatische Partitionierung einen generierten Bericht, vorhandene Tabellen werden jedoch nicht geändert. Dies ist das Standardverhalten.
    • OFF: In diesem Modus wurde die automatische Partitionierung daran gehindert, neue Empfehlungen zu erstellen, zu berücksichtigen oder anzuwenden. 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.

Rückgabewerte

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

  • Verwenden Sie diese Option mit DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION, um die Empfehlung anzuwenden.
  • Mit der Ansicht DBA_AUTO_PARTITION_RECOMMENDATIONS können Sie Details der Empfehlungen abrufen. Beispiel:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

Prozedur APPLY_RECOMMENDATION

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

Die Empfehlungs-ID wurde von der Funktion RECOMMEND_PARTITION_METHOD zurückgegeben oder aus der Ansicht DBA_AUTO_PARTITION_RECOMMENDATIONS abgefragt.

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 sind.
  • Wenn die Parameter NULL sind, partitionieren Sie alle Tabellen, die in der angegebenen Empfehlungs-ID empfohlen werden.
  • Wenn ein Tabellenname angegeben ist, 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 dieses Verfahren eine ORA-20000: recommendation_id was not found aus, wenn entweder keine akzeptierten Empfehlungen mit der RECOMMENDATION_ID verknüpft sind oder alle akzeptierten Empfehlungen mit der RECOMMENDATION_ID bereits angewendet wurden. Der erste Fall gilt, wenn RECOMMENDATION_ID mit AUTO_PARTITION_MODE = OFF generiert wurde. Der zweite Fall gilt, 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 während eines bestimmten Zeitraums in einer Autonomous Database ausgeführt werden.

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

Für den Bericht werden automatische Partitionierungsvorgänge zur Startzeit verwendet. Wenn kein Wert angegeben ist oder NULL angegeben ist, wird der Bericht für den letzten automatischen Partitionierungsvorgang generiert, der ausgeführt wurde.

ACTIVITY_END

Automatische Endzeitpartitionierungsvorgänge werden für den Bericht verwendet. Wenn kein Wert angegeben ist oder NULL angegeben ist, wird der Bericht für den letzten automatischen Partitionierungsvorgang generiert, der ausgeführt wurde.

TYPE

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

SECTION

Abschnitte, die in den Bericht aufgenommen werden sollen und einen der folgenden Werte aufweisen:
  • SUMMARY: Nur die Workload-Übersicht in den Bericht aufnehmen
  • ALL = Alle Abschnitte im Bericht einschließen. (Standard)

level

Informationsebene, die in den Bericht mit einem der folgenden Werte aufgenommen werden soll:
  • TYPICAL: Schließen Sie typische Informationen zur automatischen Partitionierung in den Bericht ein (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 schlechter Performance in den Bericht aufnehmen.
  • UNCHANGED: Nur SQL mit unveränderter Performance in den Bericht aufnehmen.
  • ALL: Alle Informationen zur automatischen Partitionierung in den Bericht aufnehmen.

Hinweise zur Verwendung

Gibt Folgendes zurück: Ein Performanceanalysebericht für die Workload, die in der Datenbank ausgeführt wird, nachdem die Empfehlung angewendet wurde. Dieser Bericht wird nicht dauerhaft mit der Empfehlung 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

Die im Bericht enthaltenen Abschnitte finden Sie unter Funktion REPORT_ACTIVITY.

LEVEL

Informationen zur Informationsebene im Bericht finden Sie unter Funktion REPORT_ACTIVITY.

Hinweise zur Verwendung

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