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

SVL_QUERY_SUMMARY

Utilizzare la visualizzazione SVL_QUERY_SUMMARY per trovare informazioni generali riguardanti l'esecuzione di una query.

La visualizzazione SVL_QUERY_SUMMARY contiene un sottoinsieme di dati della visualizzazione SVL_QUERY_REPORT. Si noti che le informazioni in SVL_QUERY_SUMMARY sono aggregate da tutti i nodi.

Nota

La vista SVL_QUERY_SUMMARY contiene solo informazioni sulle query eseguite da Amazon Redshift, non su altri comandi di utilità e DDL. Per le informazioni complete e un elenco di tutte le istruzioni eseguite da Amazon Redshift, compresi i comandi di utilità e DDL, è possibile anche eseguire una query sulla vista SVL_STATEMENTTEXT.

SVL_QUERY_SUMMARY è 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.

Per informazioni su SVCS_QUERY_SUMMART, consultare SVCS_QUERY_SUMMARY.

Colonne di tabella

Nome colonna Tipo di dati Descrizione
userid integer ID dell'utente che ha generato la voce.
query integer ID query. Consente di unire in join varie altre tabelle e visualizzazioni di sistema.
stm integer Flusso: un insieme di segmenti simultanei in una query. Una query ha uno o più flussi.
seg 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.
step integer La fase di query eseguita.
maxtime bigint Quantità di tempo massima per l'esecuzione della fase (in microsecondi).
avgtime bigint Tempo medio per l'esecuzione della fase (in microsecondi).
righe bigint Numero di righe di dati coinvolte nella fase di query.
byte bigint Numero di byte di dati coinvolti nella fase di query.
rate_row double precision Velocità di esecuzione di query per riga.
rate_byte double precision Velocità di esecuzione di query per byte.
etichetta text Etichetta di fase, che consiste in un nome di fase di query e, quando applicabile, in un ID di tabella e in un nome di tabella (per esempio, scan tbl=100448 name =user). Gli ID di tabella a tre cifre fanno in genere riferimento alle scansioni delle tabelle transitorie. Quando viene visualizzato tbl=0, in genere fa riferimento a una scansione di un valore costante.
is_diskbased character(1) Se questa fase della query è stata eseguita come operazione basata su disco su qualsiasi nodo nel cluster: true (t) o false (f). Solo determinate fasi, come hash, sort e le fasi di aggregazione, possono accedere al disco. Molti tipi di fase sono sempre eseguiti in memoria.
workmem bigint Quantità di memoria di lavoro (in byte) assegnata alla fase di query.
is_rrscan character(1) Se true (t), indica che in questa fase è stata utilizzata la scansione a intervallo limitato. Il valore predefinito è false (f).
is_delayed_scan character(1) Se true (t), indica che in questa fase è stata utilizzata la scansione ritardata. Il valore predefinito è false (f).
rows_pre_filter bigint Per le scansioni di tabelle permanenti, il numero totale di righe emesse prima di aver applicato filtri alle righe contrassegnate per l'eliminazione (righe fantasma).

Query di esempio

Visualizzazione delle informazioni di elaborazione per una fase di query

La query seguente mostra le informazioni di elaborazione di base per ogni fase della query 87:

select query, stm, seg, step, rows, bytes from svl_query_summary where query = 87 order by query, seg, step;

Questa query recupera le informazioni di elaborazione relative alla query 87, come mostrato nel seguente output di esempio:

query | stm | seg | step | rows | bytes -------+-----+-----+------+--------+--------- 87 | 0 | 0 | 0 | 90 | 1890 87 | 0 | 0 | 2 | 90 | 360 87 | 0 | 1 | 0 | 90 | 360 87 | 0 | 1 | 2 | 90 | 1440 87 | 1 | 2 | 0 | 210494 | 4209880 87 | 1 | 2 | 3 | 89500 | 0 87 | 1 | 2 | 6 | 4 | 96 87 | 2 | 3 | 0 | 4 | 96 87 | 2 | 3 | 1 | 4 | 96 87 | 2 | 4 | 0 | 4 | 96 87 | 2 | 4 | 1 | 1 | 24 87 | 3 | 5 | 0 | 1 | 24 87 | 3 | 5 | 4 | 0 | 0 (13 rows)

Determinare se le fasi della query si sono riversate sul disco

La query seguente mostra se una delle fasi della query con l'ID query 1025 si è riversata o meno sul disco (consultare la visualizzazione SVL_QLOG per scoprire come ottenere l'ID query di una query) o se la query è stata eseguita interamente in memoria:

select query, step, rows, workmem, label, is_diskbased from svl_query_summary where query = 1025 order by workmem desc;

Questa query restituisce il seguente output di esempio:

query| step| rows | workmem | label | is_diskbased -----+-----+--------+-----------+---------------+-------------- 1025 | 0 |16000000| 141557760 |scan tbl=9 | f 1025 | 2 |16000000| 135266304 |hash tbl=142 | t 1025 | 0 |16000000| 128974848 |scan tbl=116536| f 1025 | 2 |16000000| 122683392 |dist | f (4 rows)

Attraverso la scansione dei valori di IS_DISKBASED, è possibile vedere quali fasi della query sono andate sul disco. Per la query 1025, la fase di hash è stata eseguita su disco. Le fasi che possono essere eseguite su disco includono hash, aggr e le fasi di ordinamento. Per visualizzare solo le fasi di query basate su disco, aggiungere la clausola and is_diskbased = 't' all'istruzione SQL nell'esempio precedente.