ANALYZE - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ANALYZE

Aggiorna le statistiche della tabella per l'utilizzo da parte del pianificatore di query.

Privilegi richiesti

Di seguito sono riportati i privilegi necessari perANALYZE:

  • Superuser

  • Utenti con il privilegio ANALYZE

  • Proprietario della relazione

  • Proprietario del database con cui è condivisa la tabella

Sintassi

ANALYZE [ VERBOSE ] [ [ table_name [ ( column_name [, ...] ) ] ] [ PREDICATE COLUMNS | ALL COLUMNS ]

Parametri

VERBOSE

Una clausola che restituisce messaggi informativi sullo stato di avanzamento dell'ANALYZEoperazione. Questa opzione è utile quando non si specifica una tabella.

table_name

Puoi analizzare tabelle specifiche, incluse le tabelle temporanee. Puoi qualificare la tabella con il nome dello schema. Puoi specificare facoltativamente un table_name per analizzare una singola tabella. Non è possibile specificare più di un table_name con una singola istruzione table_name. ANALYZE Se non si specifichi un valore nome_tabella, saranno analizzate tutte le tabelle nel database correntemente connesso, comprese le tabelle persistenti nel catalogo di sistema. Amazon Redshift salta l'analisi di una tabella se la percentuale di righe modificate dall'ultima ANALYZE è inferiore alla soglia di analisi. Per ulteriori informazioni, consulta Soglia di analisi.

Non è necessario analizzare le tabelle (STLe STV le tabelle) del sistema Amazon Redshift.

column_name

Se specifichi un table_name, puoi anche specificare una o più colonne nella tabella (come un elenco separato da colonne tra parentesi). Se viene specificato un elenco di colonne, vengono analizzate solo le colonne elencate.

PREDICATE COLUMNS | ALL COLUMNS

Clausole che indicano se ANALYZE includere solo colonne di predicati. PREDICATECOLUMNSSpecificare di analizzare solo le colonne che sono state utilizzate come predicati nelle query precedenti o che sono probabili candidate a essere utilizzate come predicati. Specificare ALL COLUMNS di analizzare tutte le colonne. L'impostazione predefinita è ALLCOLUMNS.

Una colonna è inclusa nel set di colonne dei predicati se una delle seguenti condizioni è vera:

  • La colonna è stata utilizzata in una query come parte di un filtro, condizione di join o clausola group by.

  • La colonna è una chiave di distribuzione.

  • La colonna fa parte di una chiave di ordinamento.

Se nessuna colonna è contrassegnata come colonna di predicati, ad esempio perché la tabella non è ancora stata interrogata, tutte le colonne vengono analizzate anche quando viene PREDICATE COLUMNS specificata. Quando ciò accade, Amazon Redshift potrebbe rispondere con un messaggio del tipo «No predicate columns found for».table-name». Analisi di tutte le colonne. Per ulteriori informazioni sulle colonne di predicato, consultare Analisi delle tabelle.

Note per l'utilizzo

Amazon Redshift viene eseguito automaticamente ANALYZE sulle tabelle create con i seguenti comandi:

  • CREATETABLEAS

  • CREATETEMPTABLECOME

  • SELECT INTO

Non puoi analizzare una tabella esterna.

Non è necessario eseguire il ANALYZE comando su queste tabelle quando vengono create per la prima volta. Se le modifichi, devi analizzarle come fai per le altre tabelle.

Soglia di analisi

Per ridurre i tempi di elaborazione e migliorare le prestazioni complessive del sistema, Amazon Redshift salta ANALYZE una tabella se la percentuale di righe che sono state modificate dall'esecuzione dell'ultimo ANALYZE comando è inferiore alla soglia di analisi specificata dal parametro. analyze_threshold_percent Per impostazione predefinita, analyze_threshold_percent è 10. Per cambiare analyze_threshold_percent per la sessione corrente, emettere il comando SET. L'esempio seguente cambia analyze_threshold_percent sul 20 percento.

set analyze_threshold_percent to 20;

Per analizzare le tabelle quando è stato modificato solo un piccolo numero di righe, imposta analyze_threshold_percent su un numero arbitrariamente piccolo. Ad esempio, se imposti analyze_threshold_percent su 0.01, una tabella con 100.000.000 di righe non viene ignorata se sono state modificate almeno 10.000 righe.

set analyze_threshold_percent to 0.01;

Se ANALYZE salta una tabella perché non soddisfa la soglia di analisi, Amazon Redshift restituisce il seguente messaggio.

ANALYZE SKIP

Per analizzare tutte le tabelle anche se non sono state modificate righe, imposta analyze_threshold_percent su 0.

Per visualizzare i risultati delle ANALYZE operazioni, interroga la tabella di STL_ANALYZE sistema.

Per ulteriori informazioni sull'analisi delle tabelle, consultare Analisi delle tabelle.

Esempi

Analizza tutte le tabelle del TICKIT database e restituisci informazioni sullo stato di avanzamento.

analyze verbose;

Analizza solo la LISTING tabella.

analyze listing;

Analizza le VENUENAME colonne VENUEID e della VENUE tabella.

analyze venue(venueid, venuename);

Analizza solo le colonne dei predicati nella VENUE tabella.

analyze venue predicate columns;