Flusso di lavoro dell'analisi di query - 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à.

Flusso di lavoro dell'analisi di query

Se una query sta impiegando più tempo del previsto, utilizza le seguenti fasi per rilevare e correggere il problema che potrebbe aver avuto ripercussioni negative sulle prestazioni della query. Se non sei sicuro di quali siano le query nel tuo sistema che possono trarre un vantaggio dall'ottimizzazione delle prestazioni, avvia l'esecuzione della query di diagnostica su Identificazione delle migliori query per l'ottimizzazione.

  1. Assicurati che le tue tabelle siano progettate secondo le best practice. Per ulteriori informazioni, consulta Best practice di Amazon Redshift per la progettazione di tabelle.

  2. Verifica se puoi eliminare o archiviare qualche dato non necessario nelle tue tabelle. Ad esempio, supponiamo che le tue query includano sempre i dati degli ultimi sei mesi, ma nelle tabelle disponi dei dati degli ultimi 18 mesi. In questo caso, puoi eliminare o archiviare i dati più vecchi per ridurre il numero di registri da dover scansionare e distribuire.

  3. Esegui il comando VACUUM sulle tabelle nelle query per recuperare spazio e per ordinare nuovamente le righe. L'esecuzione del comando VACUUM è utile nel caso in cui la regione non ordinata sia di grandi dimensioni e, inoltre, se la query utilizza la chiave di ordinamento in una combinazione o nel predicato.

  4. Esegui il comando ANALYZE sulle tabelle nelle query per avere la certezza che le statistiche siano aggiornate. L'esecuzione del comando ANALYZE è utile nel caso in cui qualche tabella nella query sia stata modificata recentemente nelle sue dimensioni. Se l'esecuzione completa del comando ANALYZE impiega troppo tempo, esegui ANALYZE su una singola colonna per ridurre il tempo di elaborazione. Questo approccio aggiornerà comunque le statistiche della dimensione della tabella: quest'ultima infatti rappresenta un valore significativo nella pianificazione della query.

  5. Assicurati che la tua query sia stata eseguita una volta per ogni tipo di client (a seconda del tipo di protocollo di connessione utilizzato dal client), così che la query venga compilata e memorizzata nella cache. Grazie a questo approccio, vengono velocizzate le esecuzioni successive di query. Per ulteriori informazioni, consultare Fattori che influenzano le prestazioni della query.

  6. Verifica la tabella STL_ALERT_EVENT_LOG per rilevare e correggere possibili errori della tua query. Per ulteriori informazioni, consultare Revisione degli avvisi di query.

  7. Esegui il comando EXPLAIN per ottenere il piano di query e utilizzarlo per ottimizzare la query. Per ulteriori informazioni, consultare Analisi del piano di query.

  8. Utilizza le visualizzazioni SVL_QUERY_SUMMARY e SVL_QUERY_REPORT per ottenere le informazioni di riepilogo e utilizzarle per ottimizzare la query. Per ulteriori informazioni, consulta Analisi del riepilogo della query.

A volte, una query che dovrebbe essere eseguita velocemente viene forzata ad attendere, fino al completamento di un'altra query che ha un'esecuzione più lunga. In questo caso, potresti non aver nulla da migliorare nella query, ma puoi migliorare le prestazioni complessive del sistema, attraverso la creazione e l'utilizzo di code di query per differenti tipi di query. Per avere un'idea del tempo di attesa per la tua query, consultare Revisione dei tempi di attesa della coda per le query. Per ulteriori informazioni sulla configurazione di code di query, consultare Implementazione della gestione del carico di lavoro.