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_QUERYTEXT
Cattura il testo della query per i SQL comandi.
Interroga la QUERYTEXT vista STL _ per acquisire SQL ciò che è stato registrato per le seguenti istruzioni:
-
SELECT, SELECT INTO
-
INSERT, UPDATE, DELETE
-
COPY
-
UNLOAD
-
Le interrogazioni generate dall'esecuzione di e VACUUM ANALYZE
-
CREATETABLEAS () CTAS
Per interrogare l'attività di queste istruzioni in un determinato periodo di tempo, unisci le QUERY viste STL STL _ QUERYTEXT e _.
Nota
Le QUERYTEXT viste STL _ QUERY e STL _ contengono solo informazioni sulle interrogazioni, non altre utilità e DDL comandi. Per un elenco e informazioni su tutte le dichiarazioni eseguite da Amazon Redshift, puoi anche interrogare le viste STL _ DDLTEXT e STL _UTILITYTEXT. Per un elenco completo di tutte le istruzioni eseguite da Amazon Redshift, puoi eseguire una query su SVL _ STATEMENTTEXT view.
Consulta anche STL_DDLTEXT, STL_UTILITYTEXT e SVL_STATEMENTTEXT.
STL_ QUERYTEXT è 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 disponibili anche nella visualizzazione di SYS monitoraggioSYS_QUERY_TEXT. I dati nella visualizzazione di SYS monitoraggio sono formattati per essere più facili da usare e da comprendere. Ti consigliamo di utilizzare la visualizzazione di SYS monitoraggio per le tue domande.
Colonne di tabella
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
userid | integer | ID dell'utente che ha generato la voce. |
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. In seguito a determinati eventi interni, Amazon Redshift potrebbe riavviare una sessione attiva e assegnarne una nuova. PID Per ulteriori informazioni, consulta STL_RESTARTED_SESSIONS. È possibile utilizzare questa colonna per eseguire la connessione alla vista STL_ERROR. |
query | integer | ID query. La colonna di query può essere utilizzata per unire altre tabelle e visualizzazioni del sistema. |
sequenza | integer | Quando una singola istruzione contiene più di 200 caratteri, vengono registrate delle righe aggiuntive per tale istruzione. La sequenza 0 è la prima riga, 1 la seconda e così via. |
text | character(200) | SQLtesto, con incrementi di 200 caratteri. Questo campo potrebbe contenere caratteri speciali come barra rovesciata (\\ ) e nuova riga (\n ). |
Query di esempio
È possibile utilizzare la funzione PG_ BACKEND _ PID () per recuperare informazioni per la sessione corrente. Ad esempio, la query seguente restituisce l'ID di query e una porzione del testo di query delle query completate nella sessione corrente.
select query, substring(text,1,60)
from stl_querytext
where pid = pg_backend_pid()
order by query desc;
query | substring
-------+--------------------------------------------------------------
28262 | select query, substring(text,1,80) from stl_querytext where
28252 | select query, substring(path,0,80) as path from stl_unload_l
28248 | copy category from 's3://dw-tickit/manifest/category/1030_ma
28247 | Count rows in target table
28245 | unload ('select * from category') to 's3://dw-tickit/manifes
28240 | select query, substring(text,1,40) from stl_querytext where
(6 rows)
Ricostruzione memorizzata SQL
Per ricostruire quanto SQL memorizzato nella text
colonna di STL _QUERYTEXT, esegui un'SELECTistruzione per creare SQL da una o più parti nella colonna. text
Prima di eseguire la ricostruzioneSQL, sostituisci qualsiasi carattere speciale (\n
) con una nuova riga. Il risultato della seguente SELECT istruzione sono righe ricostruite SQL nel query_statement
campo.
SELECT query, LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement, COUNT(*) as row_count
FROM stl_querytext GROUP BY query ORDER BY query desc;
Ad esempio, la query seguente seleziona 3 colonne. La query stessa è più lunga di 200 caratteri ed è memorizzata in parti in STL _QUERYTEXT.
select
1 AS a0123456789012345678901234567890123456789012345678901234567890,
2 AS b0123456789012345678901234567890123456789012345678901234567890,
3 AS b012345678901234567890123456789012345678901234
FROM stl_querytext;
In questo esempio, la query viene memorizzata in 2 parti (righe) nella text
colonna STL _QUERYTEXT.
select query, sequence, text
from stl_querytext where query=pg_last_query_id() order by query desc, sequence limit 10;
query | sequence | text
-------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
45 | 0 | select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234
45 | 1 | \nFROM stl_querytext;
Per ricostruire quanto SQL memorizzato in STL _QUERYTEXT, esegui quanto segue. SQL
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS text
from stl_querytext where query=pg_last_query_id();
Per utilizzare la ricostruzione risultante SQL nel tuo client, sostituisci qualsiasi carattere speciale (\n
) con una nuova riga.
text
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234\nFROM stl_querytext;