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 sulle metriche, come il numero di righe elaborate, l'CPUutilizzo, l'input/output e l'utilizzo del disco, per le query la cui esecuzione è stata completata nelle 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 tiene traccia e aggrega le metriche a livello di query, segmento e 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 disponibili anche nella visualizzazione di SYS monitoraggioSYS_QUERY_DETAIL. I dati nella visualizzazione di SYS monitoraggio sono formattati per essere più facili da usare e da comprendere. Ti consigliamo di utilizzare la visualizzazione di SYS monitoraggio per le tue domande.

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 interrogazione sono definite nella WLM configurazione. 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 Ora di inizio dell'UTCesecuzione della query, con una precisione di 6 cifre per 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 CPUTempo massimo utilizzato, in microsecondi. A livello di segmento, il CPU tempo massimo utilizzato dal segmento in tutte le sezioni. A livello di query, il CPU tempo massimo utilizzato da qualsiasi segmento di query.
cpu_time bigint CPUtempo utilizzato, in microsecondi. A livello di segmento, il CPU tempo totale del segmento in tutte le sezioni. A livello di query, la somma del CPU tempo impiegato per l'interrogazione su tutte le sezioni e 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 CPU tempo 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 le query attive che sono state eseguite per più di 60 secondi e hanno utilizzato meno di 10 secondi di CPU tempo, esegui la seguente query.

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