Pacchetto DBMS_AUTO_PARTITION

Il pacchetto DBMS_AUTO_PARTITION fornisce routine amministrative per la gestione del partizionamento automatico di schemi e tabelle.

Procedura di verifica

Questa procedura configura le impostazioni per il partizionamento automatico in Autonomous Database.

Sintassi

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

Parametri

Parametro descrizione;

PARAMETER_NAME

Nome del parametro di configurazione del partizionamento automatico da aggiornare. I valori ammessi sono:

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE imposta la modalità di operazione di partizionamento automatico e ha uno dei seguenti valori:
  • IMPLEMENT: in questa modalità il partizionamento automatico genera un report e modifica la tabella esistente utilizzando il metodo di partizione consigliato.
  • REPORT ONLY: in questa modalità il partizionamento automatico genera un report, ma le tabelle esistenti non vengono modificate. Si tratta del valore predefinito.
  • OFF: in questa modalità non è possibile generare, considerare o applicare suggerimenti al partizionamento automatico. Non disabilita le tabelle partizionate automatiche esistenti.
AUTO_PARTITION_SCHEMA imposta gli schemi da includere o escludere dall'utilizzo del partizionamento automatico. Il suo comportamento è controllato dal parametro allow. Il processo di partizionamento automatico gestisce due elenchi di schemi.
  1. La lista di inclusione è la lista di schemi, con distinzione tra maiuscole e minuscole, che possono utilizzare il partizionamento automatico.
  2. La lista di esclusione è la lista di schemi, con distinzione tra maiuscole e minuscole, che non possono utilizzare il partizionamento automatico.

Inizialmente, entrambi gli elenchi sono vuoti e tutti gli schemi nel database possono utilizzare il partizionamento automatico. Se la lista di inclusione contiene uno o più schemi, solo gli schemi elencati nella lista di inclusione possono utilizzare il partizionamento automatico. Se la lista di inclusione è vuota e la lista di esclusione contiene uno o più schemi, tutti gli schemi utilizzano il partizionamento automatico ad eccezione degli schemi elencati nella lista di esclusione. Se entrambe le liste contengono uno o più schemi, tutti gli schemi utilizzano il partizionamento automatico ad eccezione degli schemi elencati nella lista di esclusione. AUTO_PARTITION_TABLE imposta le tabelle da includere o escludere dall'utilizzo del partizionamento automatico. Il valore del parametro è <schema_name>.<table_name>. Il processo di partizionamento automatico gestisce due elenchi di tabelle.

  1. L'elenco di inclusione è l'elenco di tabelle, con distinzione tra maiuscole e minuscole, che possono utilizzare il partizionamento automatico.
  2. L'elenco di esclusione è l'elenco di tabelle, con distinzione tra maiuscole e minuscole, che non possono utilizzare il partizionamento automatico.

Inizialmente, entrambi gli elenchi sono vuoti e tutte le tabelle del database possono utilizzare il partizionamento automatico. Se l'elenco di inclusione contiene una o più tabelle, solo le tabelle elencate nell'elenco di inclusione possono utilizzare il partizionamento automatico. Se l'elenco di inclusione è vuoto e l'elenco di esclusione contiene una o più tabelle, tutte le tabelle utilizzano il partizionamento automatico ad eccezione delle tabelle elencate nell'elenco di esclusione. Se entrambi gli elenchi contengono una o più tabelle, tutte le tabelle utilizzano il partizionamento automatico ad eccezione delle tabelle elencate nell'elenco di esclusione. Se una tabella non è inclusa in una delle due liste, le liste di inclusione ed esclusione dello schema decidono se una tabella è una tabella candidata per il partizionamento automatico. In caso di conflitto tra gli elenchi a livello di schema e gli elenchi a livello di tabella, gli elenchi a livello di tabella hanno la precedenza.

Per rimuovere tutte le tabelle dagli elenchi di inclusione ed esclusione, eseguire le operazioni riportate di seguito.
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION imposta il numero di giorni di conservazione dei log di partizionamento automatico nel database prima che vengano eliminati. Impossibile generare un report di partizionamento automatico per un periodo successivo al valore specificato per questo valore. Il valore predefinito è 90 giorni.

PARAMETER_VALUE

Valore per l'impostazione di configurazione specificata in parameter_name. Quando l'impostazione è NULL, all'impostazione di configurazione viene assegnato il valore predefinito.

ALLOW

Applicabile solo alle impostazioni di configurazione AUTO_PARTITION_SCHEMA o AUTO_PARTITION_TABLE con uno dei seguenti valori:
  • TRUE aggiunge lo schema o la tabella specificati alla lista di inclusione.
  • FALSE rimuove lo schema o la tabella specificati dalla lista di esclusione.
  • NULL rimuove lo schema o la tabella specificati dalla lista a cui è attualmente assegnato.
Per ulteriori informazioni sugli elenchi di inclusione ed esclusione, fare riferimento alla descrizione delle impostazioni di configurazione AUTO_PARTITION_SCHEMA e AUTO_PARTITION_TABLE.

Note per uso

  • È possibile controllare l'impostazione corrente per la configurazione del partizionamento automatico utilizzando l'istruzione SQL seguente:

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • A differenza dell'indicizzazione automatica, il partizionamento automatico non viene eseguito periodicamente come task in background. Il partizionamento automatico viene eseguito solo quando viene richiamato utilizzando la funzione DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Funzione VALIDATE_CANDIDATE_TABLE

Questa funzione controlla se la tabella specificata è un candidato valido per il partizionamento automatico in Autonomous Database.

Candidato valido

Per essere un candidato valido, devono essere superati i seguenti test:
  • La tabella supera i test di inclusione ed esclusione specificati dai parametri di configurazione AUTO_PARTITION_SCHEMA e AUTO_PARTITION_TABLE.
  • La tabella esiste e dispone di statistiche aggiornate.
  • La tabella è di almeno 64 GB.
  • La tabella contiene 5 o più query nell'SQL Tuning Set che hanno eseguito la scansione della tabella.
  • La tabella non contiene una colonna di tipo dati LONG.
  • Tabella non partizionata manualmente.
  • La tabella non è una tabella esterna, una tabella ibrida interna/esterna, una tabella temporanea, una tabella organizzata a indice o una tabella in cluster.
  • La tabella non ha un indice di dominio o un indice di join bitmap.
  • La tabella non è una tabella di memorizzazione della coda avanzata, della vista materializzata o dell'archivio di flashback.
  • La tabella non dispone di tabelle nidificate o di altre funzioni oggetto.
Restituisce:
  • VALID se la tabella è un candidato valido per il partizionamento autonomo
  • INVALID: <reason> se la tabella non è un candidato valido per il partizionamento autonomo e <reason> è una stringa che descrive il motivo per cui la tabella non è un candidato valido.

Sintassi

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;

Parametri

Parametro descrizione;

SQLSET_OWNER, SQLSET_NAME

Nome di SQL Tuning Set che rappresenta il carico di lavoro da valutare.

TABLE_OWNER, TABLE_NAME

Nome di una tabella da convalidare come candidato per il partizionamento automatico.

Note per uso

  • Ad esempio, è possibile verificare la validità di una tabella di esempio, LINEORDER, nello schema TEST, con il seguente codice SQL:
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

Funzione RECOMMEND_PARTITION_METHOD

Questa funzione restituisce un ID suggerimento che può essere utilizzato con la procedura APPLY_RECOMMENDATION per applicare il suggerimento oppure può essere utilizzato con la vista DBA_AUTO_PARTITION_RECOMMENDATIONS per recuperare i dettagli dei suggerimenti per il partizionamento automatico in Autonomous Database.

Sintassi

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;

Parametri

Parametro descrizione;

SQLSET_OWNER, SQLSET_NAME

Nome di SQL Tuning Set che rappresenta il carico di lavoro da valutare.

TABLE_OWNER, TABLE_NAME

Nome di una tabella da convalidare come candidato per il partizionamento automatico.

TIME_LIMIT

Quando la funzione sceglie le tabelle per le quali generare i suggerimenti, TABLE_OWNER e TABLE_NAME sono NULL), il parametro limita la durata dell'esecuzione della funzione prima che smetta di cercare nuove tabelle candidate da partizionare. Una volta avviata l'elaborazione di una tabella, il processo non verrà interrotto. Si prevede che la funzione possa essere eseguita più a lungo di questo parametro. Se il parametro è NULL, non esiste un limite di tempo. Il valore predefinito è 1 giorno.

REPORT_TYPE

Utilizzato per generare il report per il metodo di partizione consigliato. Per ulteriori informazioni, vedere Funzione REPORT_ACTIVITY.

REPORT_SECTION

Utilizzato per generare un report persistente per il metodo di partizione consigliato. Per ulteriori informazioni, vedere Funzione REPORT_ACTIVITY.

REPORT_LEVEL

Utilizzato per generare il report per il metodo di partizione consigliato. Per ulteriori informazioni, vedere Funzione REPORT_ACTIVITY.

Note per uso

  • AUTO_PARTITION_MODE controlla le azioni eseguite da questa funzione:
    • IMPLEMENT: in questa modalità il partizionamento automatico genera un report e modifica la tabella esistente utilizzando il metodo di partizione consigliato.
    • REPORT ONLY: in questa modalità, il partizionamento automatico genera un report generato, ma le tabelle esistenti non vengono modificate. Si tratta del valore predefinito.
    • OFF: in questa modalità, il partizionamento automatico ha impedito di produrre, considerare o applicare nuove raccomandazioni. Non disabilita le tabelle partizionate automatiche esistenti.
  • A differenza dell'indicizzazione automatica, il partizionamento automatico non viene eseguito periodicamente come task in background. Il partizionamento automatico viene eseguito solo quando viene richiamato utilizzando la funzione DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Valori restituiti

Questa funzione restituisce un ID suggerimento che può essere utilizzato come segue: DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION per applicare il suggerimento,

  • Utilizzare DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION per applicare il suggerimento.
  • Utilizzare la vista DBA_AUTO_PARTITION_RECOMMENDATIONS per recuperare i dettagli dei suggerimenti. Ad esempio:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATION Procedura

Questa procedura applica il suggerimento specificato in un Autonomous Database.

Sintassi

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

Parametri

Parametro descrizione;

RECOMMENDATION_ID

ID suggerimento restituito dalla funzione RECOMMEND_PARTITION_METHOD o sottoposto a query dalla vista DBA_AUTO_PARTITION_RECOMMENDATIONS.

TABLE_OWNER, TABLE_NAME

Quando un singolo ID suggerimento contiene suggerimenti per più tabelle, questo parametro facoltativo consente di controllare quali tabelle sono partizionate.
  • Se i parametri sono NULL, partizionare tutte le tabelle consigliate nell'ID suggerimento specificato.
  • Se viene specificato un nome di tabella, eseguire la partizione solo della tabella denominata.
  • Se TABLE_OWNER o TABLE_NAME è NOT NULL, devono essere entrambi NOT NULL.

Nota per l'uso:

Indipendentemente da AUTO_PARTITION_MODE, questa procedura genera un ORA-20000: recommendation_id was not found se non esistono raccomandazioni accettate associate a RECOMMENDATION_ID o se tutte le raccomandazioni accettate associate a RECOMMENDATION_ID sono già state applicate. Il primo caso si applica se RECOMMENDATION_ID è stato generato con AUTO_PARTITION_MODE = OFF. Il secondo caso si applica se RECOMMENDATION_ID è stato generato con AUTO_PARTITION_MODE = IMPLEMENT.

Funzione REPORT_ACTIVITY

Questa funzione restituisce un report delle operazioni di partizionamento automatico eseguite durante un periodo specifico in un Autonomous Database.

Sintassi

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;

Parametri

Parametro descrizione;

ACTIVITY_START

Ora di inizio utilizzo delle operazioni di partizionamento automatico per il report. Se non viene specificato alcun valore o viene specificato NULL, il report viene generato per l'ultima operazione di partizionamento automatico eseguita.

ACTIVITY_END

Operazioni di partizionamento automatico dell'ora di fine utilizzate per il report. Se non viene specificato alcun valore o viene specificato NULL, il report viene generato per l'ultima operazione di partizionamento automatico eseguita.

TYPE

Formato del report con uno dei seguenti valori:
  • TEXT (predefinito)
  • HTML
  • XML

SECTION

Sezioni da includere nel report con uno dei seguenti valori:
  • SUMMARY: include solo il riepilogo del carico di lavoro nel report
  • ALL = Include tutte le sezioni del report. (impostazione predefinita)

level

Livello di informazioni da includere nel report con uno dei seguenti valori:
  • TYPICAL: include nel report le tipiche informazioni di partizionamento automatico (impostazione predefinita).
  • CHANGED: include solo SQL con prestazioni modificate nel report.
  • IMPROVED: include solo SQL con prestazioni migliorate nel report.
  • REGRESSED: include solo SQL con prestazioni ridotte nel report.
  • UNCHANGED: include solo SQL con prestazioni invariate nel report.
  • ALL: include tutte le informazioni sul partizionamento automatico nel report.

Note per uso

Restituisce un report di analisi delle prestazioni per il carico di lavoro eseguito sul database dopo l'applicazione del suggerimento. Questo report non viene memorizzato in modo persistente con il suggerimento.

Funzione REPORT_LAST_ACTIVITY

Questa funzione restituisce un report dell'operazione di partizionamento automatico più recente eseguita in un Autonomous Database.

Sintassi

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

Parametri

Parametro descrizione;

TYPE

Il formato di output del report, vedere Funzione REPORT_ACTIVITY per informazioni.

SECTION

Le sezioni incluse nel report, vedere Funzione REPORT_ACTIVITY per informazioni.

LEVEL

Il livello di informazioni incluso nel report. Per informazioni, vedere REPORT_ACTIVITY Funzione.

Note per uso

Restituisce un report di analisi delle prestazioni per il carico di lavoro eseguito sul database dopo l'applicazione dell'ultimo suggerimento. Questo report non viene memorizzato in modo persistente con il suggerimento.