STL_QUERY - 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

Restituisce informazioni di esecuzione su una query del database.

Nota

Le viste STL_QUERY e STL_QUERYTEXT contengono solo informazioni sulle query, non su altre utility o comandi DDL. Per un elenco e le informazioni su tutte le istruzioni eseguite da Amazon Redshift, è possibile anche eseguire query sulle tabelle STL_DDLTEXT e STL_UTILITYTEXT. Per un elenco completo di tutte le istruzioni eseguite da Amazon Redshift, è possibile eseguire una query sulla vista SVL_STATEMENTTEXT.

STL_QUERY è 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_HISTORY. 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 generato la voce.
query integer ID query. La colonna di query può essere utilizzata per unire altre tabelle e visualizzazioni del sistema.
etichetta character(320) Il nome del file utilizzato per eseguire la query o un'etichetta definita con un comando SET QUERY GROUP. Se la query non è basata su file o non è impostato il parametro QUERY_GROUP, questo valore del campo è default.
xid bigint ID transazione.
pid integer ID processo. In genere, tutte le query in una sessione sono eseguite nello stesso processo, quindi questo valore di solito rimane costante se esegui una serie di query nella stessa sessione. Seguendo determinati eventi interni, Amazon Redshift può riavviare una sessione attiva e assegnare un nuovo PID. Per ulteriori informazioni, consulta STL_RESTARTED_SESSIONS.
database character(32) Il nome del database al quale l'utente era collegato al momento del rilascio della query.
querytxt character(4000) Testo reale di query per la query.
starttime timestamp Ora in UTC in cui è stata avviata la query. Il tempo totale include l'inserimento in coda e l'esecuzione, con precisione a 6 cifre per le frazioni di secondo. Ad esempio: 2009-06-12 11:29:19.131358.
endtime timestamp L'orario in UTC in cui è terminata la query. Il tempo totale include l'inserimento in coda e l'esecuzione, con precisione a 6 cifre per le frazioni di secondo. Ad esempio: 2009-06-12 11:29:19.131358.
aborted integer Se la query è stata interrotta dal sistema o annullata dall'utente, questa colonna contiene 1. Se la query è stata eseguita fino a completamento (inclusa la restituzione dei risultati al client), questa colonna contiene 0. Se un client si disconnette prima di ricevere i risultati, la query sarà contrassegnata come annullata (1), anche se il completamento è riuscito nel back-end.
insert_pristine integer Indica se l'esecuzione delle query di scrittura è/era possibile quando la query corrente è/era in esecuzione. 1 = nessuna query di scrittura consentita. 0 = query di scrittura consentite. Questa colonna è da utilizzarsi per scopi di debug.
concurrency_scaling_status integer

Indica se la query è stata eseguita nel cluster principale o in un cluster di dimensionamento della concorrenza. I valori possibili sono i seguenti:

0 - Eseguita nel cluster principale

1 - Eseguita in un cluster con dimensionamento simultaneo

Superiore a 1 - Eseguita nel cluster principale

Query di esempio

La query seguente elenca le cinque query più recenti.

select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)

La query seguente restituisce il tempo trascorso in ordine decrescente per le query eseguite il 15 febbraio 2013.

select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)

La seguente query mostra il tempo di attesa in coda e il tempo di esecuzione delle query. Le query con concurrency_scaling_status = 1 sono state eseguite in un cluster di dimensionamento della concorrenza. Tutte le altre query sono state eseguite nel cluster principale.

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;