Salta al contenuto

Perché le mie query durano più a lungo dopo la manutenzione di Amazon Redshift?

3 minuti di lettura
0

Le mie query e le prestazioni generali del cluster peggiorano dopo una finestra di manutenzione in Amazon Redshift.

Breve descrizione

Durante l'aggiornamento di una versione, Amazon Redshift cancella la cache delle query e la cache di compilazione. Quando esegui una query per la prima volta dopo l'aggiornamento, il tempo di compilazione è maggiore. Tuttavia, le prestazioni migliorano gradualmente man mano che Amazon Redshift ricostruisce la cache.

Amazon Redshift non modifica le versioni del cluster per tutte le azioni della finestra di manutenzione. Per identificare le modifiche alla versione, controlla la colonna redshift_version nella tabella SYS_QUERY_HISTORY.

Per ulteriori informazioni sui tipi di cache in Amazon Redshift, consulta Caching dei risultati e Codice compilato. Per ulteriori informazioni sulle prestazioni delle query, consulta Fattori che influenzano le prestazioni della query.

Risoluzione

Analizza le prestazioni delle query prima e dopo la manutenzione

Identifica le query eseguite prima e dopo la manutenzione. Puoi utilizzare la console di monitoraggio delle query o la vista di sistema SYS_QUERY_HISTORY.

Per individuare le ultime 20 query di un utente, esegui questa query:

SELECT * FROM sys_query_history
WHERE user_id>1
ORDER BY start_time desc
limit 20;

Nell'output, utilizza la colonna user_query_hash per confrontare le query con lo stesso testo. In alternativa, utilizza generic_query_hash per confrontare le query con un testo simile ma con valori letterali diversi.

Per visualizzare ogni volta che hai eseguito una query specifica negli ultimi 7 giorni, esegui questa query:

SELECT * FROM sys_query_history
WHERE user_query_hash = 'ExampleText'
ORDER BY start_time desc;

Nota: sostituisci ExampleText con il valore hash della query.

Nell'output, confronta il valore compile_time tra le diverse esecuzioni. Il tempo di compilazione di una query eseguita subito dopo la manutenzione potrebbe essere maggiore.

Per ridurre i tempi di compilazione, pianifica le query chiave da eseguire dopo la manutenzione o riscalda le query critiche al di fuori degli orari di picco.

Nota: il motore di esecuzione delle query compila un codice diverso per i protocolli di connessione Java Database Connectivity (JDBC) e Microsoft Open Database Connectivity (ODBC). Se hai due client che utilizzano protocolli diversi, ogni client sostiene il costo della prima compilazione del codice. Tuttavia, i client che utilizzano lo stesso protocollo condividono il codice memorizzato nella cache. Quando utilizzi JDBC per connetterti al cluster ed eseguire una query, Amazon Redshift salva la cache solo per le connessioni JDBC. Se esegui la stessa query su un client che utilizza ODBC, Amazon Redshift genera un'altra cache per la connessione ODBC.

Risolvi i problemi

A volte, quando le compilazioni delle query mostrano poche differenze prima e dopo la manutenzione, può essere presente n problema non correlato alle prestazioni. Utilizza la console Monitoraggio di database e query per monitorare picchi insoliti nelle metriche. Confronta i tempi di compilazione per identificare l'origine del problema.

Se non riscontri picchi ma il problema persiste, crea una richiesta di assistenza.

Informazioni correlate

SVL_COMPILE

AWS UFFICIALEAggiornata 4 mesi fa