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à.
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 | Se le interrogazioni di scrittura sono in are/were able to run while the current query is/was esecuzione. 1 = nessuna interrogazione di scrittura consentita. 0 = le interrogazioni di scrittura sono 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;