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à.
Accelerazione di query brevi
L'accelerazione di query brevi (SQA) rende prioritarie le query a esecuzione breve rispetto a quelle a esecuzione prolungata. L'accelerazione di query brevi (SQA, Short Query Acceleration) esegue query a esecuzione breve in uno spazio dedicato, in modo che le query SQA non siano costrette ad attendere in coda dietro query più lunghe. SQA assegna la priorità solo alle query che hanno un'esecuzione breve e si trovano in una coda definita dall'utente. Con SQA, le query a esecuzione breve iniziano l'esecuzione più rapidamente e gli utenti visualizzano i risultati prima.
Se abiliti SQA, è possibile ridurre le code di gestione del carico di lavoro (WLM) dedicate all'esecuzione di query brevi. Inoltre, le query a esecuzione prolungata non devono contendere gli slot con le query brevi in una coda, quindi puoi configurare le code WLM per utilizzare un numero inferiore di slot di query. Quando usi una simultaneità inferiore, il throughput delle query aumenta e le prestazioni generali del sistema risultano migliorate per la maggior parte dei carichi di lavoro.
Le istruzioni CREATE TABLE AS (CTAS) e le query di sola lettura, ad esempio le istruzioni SELECT, sono idonee per SQA.
Amazon Redshift utilizza un algoritmo di machine learning per analizzare ciascuna query idonea e prevedere il tempo di esecuzione della query. Per impostazione predefinita, WLM assegna dinamicamente un valore per il tempo di esecuzione massimo SQA in base all'analisi del carico di lavoro del cluster. In alternativa, è possibile specificare un valore fisso di 1-20 secondi. Se il tempo di esecuzione previsto della query è inferiore al runtime massimo SQA definito o assegnato dinamicamente e la query è in attesa in una coda WLM, SQA separa la query dalle code WLM e la pianifica per l'esecuzione prioritaria. Se una query viene eseguita più a lungo rispetto al tempo di esecuzione massimo SQA, WLM sposta la query nella prima coda WLM corrispondente in base alle regole di assegnazione delle code WLM. Nel corso del tempo le previsioni migliorano man mano che SQA assimila i tuoi modelli di query.
SQA è abilitato per impostazione predefinita nel gruppo di parametri predefiniti e per tutti i nuovi gruppi di parametri. Per disabilitare SQA nella console Amazon Redshift, modificare la configurazione WLM per un gruppo di parametri e deselezionare Abilita accelerazione di query brevi. Come best practice, ti consigliamo di utilizzare un numero di slot di query WLM pari o inferiore a 15 per mantenere le prestazioni generali del sistema a livello ottimale. Per informazioni sulla modifica delle configurazioni WLM, consulta Configurazione della gestione del carico di lavoro nella Guida alla gestione di Amazon Redshift.
Tempo di esecuzione massimo per query brevi
Quando abiliti SQA, WLM imposta il tempo di esecuzione massimo per le query brevi su dinamico per impostazione predefinita. Ti consigliamo di mantenere le impostazioni dinamiche per il tempo massimo di esecuzione SQA. È possibile ignorare l'impostazione di default specificando un valore fisso compreso tra 1 e 20 secondi.
In alcuni casi, puoi prendere in considerazione l'utilizzo di valori diversi per i valori massimi del tempo di esecuzione SQA per migliorare le prestazioni del sistema. In questi casi, analizza il tuo carico di lavoro per trovare il tempo massimo di esecuzione per la maggior parte delle tue query a esecuzione breve. La seguente query restituisce il tempo di esecuzione massimo per le query a circa il 70° percentile.
select least(greatest(percentile_cont(0.7) within group (order by total_exec_time / 1000000) + 2, 2), 20) from stl_wlm_query where userid >= 100 and final_state = 'Completed';
Dopo aver identificato un valore di tempo di esecuzione massimo adatto al carico di lavoro, non è necessario modificarlo a meno che il carico di lavoro non cambi significativamente.
Monitoraggio dell'accelerazione di query brevi (SQA, Short Query Acceleration)
Per controllare se SQA è abilitato, esegui la seguente query. Se la query restituisce una riga, SQA è abilitato.
select * from stv_wlm_service_class_config where service_class = 14;
La seguente query mostra il numero di query che hanno sostato in ciascuna coda di query (classe di servizio). Mostra anche il tempo medio di esecuzione, il numero di query con tempo di attesa al 90° percentile e il tempo medio di attesa. Le query SQA vengono utilizzate nella classe di servizio 14.
select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;
Per trovare quali query sono state rilevate da SQA e completate, esegui la seguente query.
select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Completed' order by b.query desc limit 5;
Per trovare le query che SQA ha rilevato ma che hanno generato un timeout, esegui la seguente query.
select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Evicted' order by b.query desc limit 5;
Per ulteriori informazioni sulle query rifiutate e, più in generale, sulle operazioni basate su regole che possono essere eseguite sulle query, consulta Regole di monitoraggio delle query WLM.