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.