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à.
STV_INFLIGHT
Utilizza la tabella STV_INFLIGHT per determinare quali query sono attualmente in esecuzione sul cluster. Se stai risolvendo problemi, è utile per controllare lo stato delle query di lunga durata.
STV_INFLIGHT non indica query solo di nodo principale. Per ulteriori informazioni, consultare Nodo principale: solo funzioni. STV_INFLIGHT è 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_INFLIGHT
Se utilizzi STV_INFLIGHT per risolvere i problemi relativi alle prestazioni di una query o di una raccolta di query, tieni presente quanto segue:
Le transazioni aperte a lungo termine generalmente aumentano il carico. Queste transazioni aperte possono comportare tempi di esecuzione più lunghi per altre domande.
I job COPY ed ETL di lunga durata possono influire su altre query in esecuzione sul cluster, se richiedono molte risorse di elaborazione. Nella maggior parte dei casi, lo spostamento di questi processi di lunga durata in periodi di scarso utilizzo aumenta le prestazioni per i carichi di lavoro di reporting o analisi.
Esistono visualizzazioni che forniscono informazioni correlate a STV_INFLIGHT. Questi includono STL_QUERYTEXT, che acquisisce il testo della query per i comandi SQL, e SVV_QUERY_INFLIGHT, che unisce STV_INFLIGHT a STL_QUERYTEXT. Puoi anche usare STV_RECENTS con STV_INFLIGHT per la risoluzione dei problemi. Ad esempio, STV_RECENTS può indicare se query specifiche sono nello stato In esecuzione o Completato. La combinazione di queste informazioni con i risultati di STV_INFLIGHT può fornire ulteriori informazioni sulle proprietà di una query e sull'impatto sulle risorse di calcolo.
Puoi anche monitorare le query in esecuzione utilizzando la console Amazon Redshift.
Colonne di tabella
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
userid | integer | ID dell'utente che ha generato la voce. |
sezione | integer | Sezione in cui viene eseguita la query. |
query | integer | ID query. Consente di unire in join varie altre tabelle e visualizzazioni di 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 il parametro QUERY_GROUP non è impostato, questo campo è vuoto. |
xid | bigint | ID transazione. |
pid | integer | ID processo. Tutte le query in una sessione sono eseguite nello stesso processo, quindi questo valore rimane costante se si esegue una serie di query nella stessa sessione. È possibile utilizzare questa colonna per eseguire la connessione alla tabella STL_ERROR. |
starttime | timestamp | Ora in cui è stata avviata la query. |
text | character(100) | Testo di query troncato a 100 caratteri se l'istruzione supera quel limite. |
sospeso | integer | Indica se la query è sospesa. 0 = false; 1 = true. |
insert_pristine | integer | Se le interrogazioni di scrittura sono are/were able to run while the current query is/was in 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 con dimensionamento simultaneo. I valori possibili sono i seguenti: 0 - Eseguita nel cluster principale 1 - Eseguita in un cluster con dimensionamento simultaneo |
Query di esempio
Per visualizzare tutte le query attive correntemente in esecuzione sul database, digita la seguente query:
select * from stv_inflight;
L'output di esempio seguente mostra due query in corso di esecuzione, ovvero la query STV_INFLIGHT stessa e una query eseguita da uno script denominato avgwait.sql
:
select slice, query, trim(label) querylabel, pid,
starttime, substring(text,1,20) querytext
from stv_inflight;
slice|query|querylabel | pid | starttime | querytext
-----+-----+-----------+-----+--------------------------+--------------------
1011 | 21 | | 646 |2012-01-26 13:23:15.645503|select slice, query,
1011 | 20 |avgwait.sql| 499 |2012-01-26 13:23:14.159912|select avg(datediff(
(2 rows)
La seguente query seleziona diverse colonne, tra cui concurrency_scaling_status. Questa colonna indica se le query vengono inviate al cluster con scalabilità concorrenziale. Se il valore è 1
per alcuni risultati, indica che vengono utilizzate risorse di elaborazione con scalabilità concorrenziale. Per ulteriori informazioni, consulta Dimensionamento simultaneo.
select userid,
query,
pid,
starttime,
text,
suspended,
concurrency_scaling_status
from STV_INFLIGHT;
L'output di esempio mostra l'invio di una query al cluster di scalabilità concorrenziale.
query | pid | starttime | text | suspended | concurrency_scaling_status
--------+---------+----------------------------|------------------------|---------------|-------------------------------
1234567 | 123456 | 2012-01-26 13:23:15.645503 | select userid, query... 0 1
2345678 | 234567 | 2012-01-26 13:23:14.159912 | select avg(datediff(... 0 0
(2 rows)
Per ulteriori suggerimenti sulla risoluzione dei problemi relativi alle prestazioni delle query, vedere Risoluzione dei problemi delle query.