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».
. Per ulteriori informazioni sulle colonne di predicato, consultare Analisi delle tabelle.table-name
». Analisi di tutte le colonne -
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;