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à.
Utilizza la tabella STV_RECENTS per trovare informazioni sulle query correntemente attive e su quelle eseguite di recente in un database.
STV_RECENTS è 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.
Risoluzione dei problemi con STV_RECENTS
STV_RECENTS è particolarmente utile per determinare se una query o una raccolta di query è attualmente in esecuzione o completata. Mostra anche la durata dell'esecuzione di una query. Questo è utile per avere un'idea delle query che richiedono più tempo.
È possibile aggiungere STV_RECENTS ad altre viste di sistema, ad esempio STV_INFLIGHT, per raccogliere metadati aggiuntivi sulle query in esecuzione. C'è un esempio che mostra come eseguire questa operazione nella sezione delle interrogazioni di esempio. Puoi anche utilizzare i record restituiti da questa visualizzazione insieme alle funzionalità di monitoraggio della console Amazon Redshift per la risoluzione dei problemi in tempo reale.
Le viste di sistema complementari a STV_RECENTS includono STL_QUERYTEXT, che recupera il testo della query per i comandi SQL, e SVV_QUERY_INFLIGHT, che unisce STV_INFLIGHT a STL_QUERYTEXT.
Colonne di tabella
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
userid | integer | ID dell'utente che ha generato la voce. |
status | character(20) | Stato della query. I valori validi sono Running , Done . |
starttime | timestamp | Ora in cui è stata avviata la query. |
durata | integer | Numero di microsecondi dall'avvio della sessione. |
user_name | character(50) | Nome dell'utente che ha eseguito il processo. |
db_name | character(50) | Nome del database. |
query | character(600) | Testo della query, fino a 600 caratteri. Tutti i caratteri supplementari sono troncati. |
pid | integer | ID di processo per la sessione associata alla query, che è sempre -1 per le query completate. |
Query di esempio
Per determinare quali query sono attualmente in esecuzione nel database, esegui la seguente query:
select user_name, db_name, pid, query
from stv_recents
where status = 'Running';
L'output di esempio seguente mostra una singola query in esecuzione nel database TICKIT:
user_name | db_name | pid | query
----------+---------+---------+-------------
dwuser | tickit | 19996 |select venuename, venueseats from
venue where venueseats > 50000 order by venueseats desc;
L'esempio seguente restituisce un elenco di query (se esistenti) in esecuzione o nella coda in attesa di essere eseguite:
select * from stv_recents where status<>'Done';
status | starttime | duration |user_name|db_name| query | pid
-------+---------------------+----------+---------+-------+-----------+------
Running| 2010-04-21 16:11... | 281566454| dwuser |tickit | select ...| 23347
Questa query non restituisce risultati a meno che non stai eseguendo un certo numero di query simultanee e alcune di queste sono in coda.
L'esempio seguente amplia quello precedente. In questo caso, le query che sono realmente in esecuzione e non in attesa sono escluse dal risultato:
select * from stv_recents where status<>'Done'
and pid not in (select pid from stv_inflight);
...
Per ulteriori suggerimenti sulla risoluzione dei problemi relativi alle prestazioni delle query, vedere Risoluzione dei problemi delle query.