STL_QUERY_METRICS - 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à.

STL_QUERY_METRICS

Contiene informazioni di parametro, come il numero di righe elaborate, l'uso della CPU, input/output e l'uso del disco per le query che hanno completato l'esecuzione in code di query definite dall'utente (classi di servizio). Per visualizzare i parametri per le query attive correntemente in esecuzione, consultare la vista di sistema STV_QUERY_METRICS.

I parametri delle query sono campionati a intervalli di un secondo. Di conseguenza, differenti esecuzioni della stessa query potrebbero restituire orari leggermente differenti. Inoltre, i segmenti di query che vengono eseguiti in meno di un secondo potrebbero non essere registrati.

STL_QUERY_METRICS traccia e aggrega i parametri a livello di query, di segmento e di fase. Per ulteriori informazioni sui segmenti e sulle fasi di query, consultare Pianificazione di query e flusso di lavoro di esecuzione. Molti parametri (come max_rows, cpu_time e così via) sono sommati sulle sezioni di nodo. Per ulteriori informazioni sulle sezioni di nodo, consultare Architettura del sistema di data warehouse.

Per determinare il livello in cui la riga fornisce i parametri, esamina le colonne segment e step_type.

  • Se entrambe le colonne segment e step_type sono -1, la riga fornisce parametri a livello di query.

  • Se segment non è -1 e step_type è -1, la riga fornisce parametri a livello di segmento.

  • Se entrambe le colonne segment e step_type non sono -1, la riga fornisce parametri a livello di fase.

La vista SVL_QUERY_METRICS e la vista SVL_QUERY_METRICS_SUMMARY aggregano i dati in questa vista e presentano le informazioni in un modulo più accessibile.

STL_QUERY_METRICS è visibile a tutti gli utenti. Gli utenti con privilegi avanzati visualizzano tutte le righe; gli utenti regolari visualizzano solo i propri dati. Per ulteriori informazioni, consulta Visibilità dei dati nelle tabelle e nelle viste di sistema.

Alcuni o tutti i dati di questa tabella sono definiti anche nella vista di monitoraggio SYS SYS_QUERY_DETAIL. I dati nella vista di monitoraggio SYS sono formattati in modo da essere più facili da usare e comprendere. Ti consigliamo di utilizzare la vista di monitoraggio SYS per le query.

Colonne di tabella

Nome colonna Tipo di dati Descrizione
userid integer ID dell'utente che ha eseguito la query che ha generato la voce.
service_class integer ID per la classe di servizio. Le code di query sono definite nella configurazione WLM. I parametri sono restituiti solo per le code definite dall'utente.
query integer ID query. La colonna di query può essere utilizzata per unire altre tabelle e visualizzazioni del sistema.
segment integer Numero di segmento. Una query consiste in più segmenti e ogni segmento consiste in una o più fasi. I segmenti di query possono essere eseguiti in parallelo. Ogni segmento viene eseguito in un singolo processo. Se il valore del segmento è -1, viene eseguito il rollup dei valori di segmento dei parametri a livello della query.
step_type integer Tipo di fase eseguita. Per una descrizione dei tipi di fase, consultare Tipo di fase.
starttime timestamp Orario in UTC in cui la query ha avviato l'esecuzione, con 6 cifre di precisione per le frazioni di secondo. Ad esempio: 2009-06-12 11:29:19.131358.
slices integer Numero di sezioni per il cluster.
max_rows bigint Numero massimo di righe prodotte per una fase, aggregate tra tutte le sezioni.
righe bigint Numero di righe elaborate da una fase.
max_cpu_time bigint Tempo CPU massimo utilizzato in microsecondi. A livello del segmento, il tempo CPU massimo utilizzato dal segmento tra tutte le sezioni. A livello della query, il tempo CPU massimo utilizzato dal qualsiasi segmento di query.
cpu_time bigint Tempo CPU utilizzato in microsecondi. A livello del segmento, il tempo CPU totale per il segmento tra tutte le sezioni. A livello della query, la somma del tempo CPU per la query tra tutte le sezioni e tutti i segmenti.
max_blocks_read bigint Numero massimo di blocchi da 1 MB letti dal segmento, aggregati tra tutte le sezioni. A livello del segmento, il numero massimo di blocchi da 1 MB letti per il segmento tra tutte le sezioni. A livello della query, il numero massimo di blocchi da 1 MB letti da qualsiasi segmento di query.
blocks_read bigint Numero di blocchi da 1 MB letti dalla query o dal segmento.
max_run_time bigint Tempo massimo trascorso per un segmento, in microsecondi. A livello del segmento, il tempo di esecuzione massimo per il segmento tra tutte le sezioni. A livello della query, il tempo di esecuzione per qualsiasi segmento di query.
run_time bigint

Tempo di esecuzione totale, sommato tra le sezioni. Il tempo di esecuzione non include il tempo di attesa.

A livello del segmento, il tempo di esecuzione per il segmento, sommato tra tutte le sezioni. A livello della query, il tempo di esecuzione per la query sommato tra tutte le sezioni e tutti i segmenti. Poiché questo valore è una somma, il tempo di esecuzione non è correlato al tempo di esecuzione della query.

max_blocks_to_disk bigint La quantità massima di spazio su disco utilizzata per scrivere risultati intermedi, in blocchi di MB. A livello del segmento, la quantità massima di spazio su disco utilizzato dal segmento tra tutte le sezioni. A livello della query, la quantità massima di spazio su disco utilizzato da qualsiasi segmento di query.
blocks_to_disk bigint La quantità di spazio su disco utilizzata da una query o da un segmento per scrivere risultati intermedi, in blocchi di MB.
step integer La fase di query eseguita.
max_query_scan_size bigint La dimensione massima di dati sottoposti a scansione da una query in MB. A livello del segmento, la quantità massima di dati sottoposti a scansione dal segmento tra tutte le sezioni. A livello della query, la quantità massima di dati sottoposti a scansione da qualsiasi segmento di query.
query_scan_size bigint La dimensione dei dati sottoposti a scansione da una query in MB.
query_priority integer La priorità della query. I valori possibili sono -1, 0, 1, 2, 3 e 4, dove -1 indica che la priorità della query non è supportata.
query_queue_time bigint La quantità di tempo espressa in microsecondi di permanenza della query nella coda.
service_class_name character(64) Il nome della classe dei servizi.

Query di esempio

Per trovare le query con un tempo di CPU elevato (più di 1.000 secondi), esegui la seguente query.

Select query, cpu_time / 1000000 as cpu_seconds from stl_query_metrics where segment = -1 and cpu_time > 1000000000 order by cpu_time; query | cpu_seconds ------+------------ 25775 | 9540

Per trovare query attive con un nested loop join che hanno restituito più di un milione di righe, esegui la query seguente.

select query, rows from stl_query_metrics where step_type = 15 and rows > 1000000 order by rows; query | rows ------+----------- 25775 | 2621562702

Per trovare query attive eseguite per più di 60 secondi e con tempo CPU utilizzato inferiore a 10 secondi, esegui la query seguente.

select query, run_time/1000000 as run_time_seconds from stl_query_metrics where segment = -1 and run_time > 60000000 and cpu_time < 10000000; query | run_time_seconds ------+----------------- 25775 | 114