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à.
Acquisisce le seguenti istruzioni DDL eseguite nel sistema.
Queste istruzioni DDL includono le query e gli oggetti seguenti:
-
CREATE SCHEMA, TABLE, VIEW
-
DROP SCHEMA, TABLE, VIEW
-
ALTER SCHEMA, TABLE
Consulta anche STL_QUERYTEXT, STL_UTILITYTEXT e SVL_STATEMENTTEXT. Queste viste forniscono una sequenza temporale dei comandi SQL eseguiti nel sistema; la cronologia è utile per la risoluzione dei problemi e per creare un percorso di verifica di tutte le attività di sistema.
Utilizza le colonne STARTTIME ed ENDTIME per scoprire quali istruzioni sono state registrate in un dato periodo. Blocchi lunghi di testo SQL sono suddivisi in righe di 200 caratteri; la colonna SEQUENCE identifica i frammenti di testo che appartengono a ogni singola istruzione.
STL_DDLTEXT è 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. |
xid | bigint | ID di transazione associato all'istruzione. |
pid | integer | ID di processo associato all'istruzione. |
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. |
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 . |
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) | Testo SQL, in incrementi da 200 caratteri. Questo campo potrebbe contenere caratteri speciali come barra rovesciata (\\ ) e nuova riga (\n ). |
Query di esempio
La seguente query restituisce i record che includono istruzioni DDL eseguite in precedenza.
select xid, starttime, sequence, substring(text,1,40) as text
from stl_ddltext order by xid desc, sequence;
Di seguito è riportato un output di esempio che mostra quattro istruzioni CREATE TABLE. Le istruzioni DDL vengono visualizzate nella colonna text
, che è troncata per ragioni di leggibilità.
xid | starttime | sequence | text
------+----------------------------+----------+------------------------------------------
1806 | 2013-10-23 00:11:14.709851 | 0 | CREATE TABLE supplier ( s_suppkey int4 N
1806 | 2013-10-23 00:11:14.709851 | 1 | s_comment varchar(101) NOT NULL )
1805 | 2013-10-23 00:11:14.496153 | 0 | CREATE TABLE region ( r_regionkey int4 N
1804 | 2013-10-23 00:11:14.285986 | 0 | CREATE TABLE partsupp ( ps_partkey int8
1803 | 2013-10-23 00:11:14.056901 | 0 | CREATE TABLE part ( p_partkey int8 NOT N
1803 | 2013-10-23 00:11:14.056901 | 1 | ner char(10) NOT NULL , p_retailprice nu
(6 rows)
Ricostruzione dell'SDL archiviato
Il seguente SQL elenca le righe archiviate nella colonna text
di STL_DDLTEXT. Le righe sono ordinate per xid
e sequence
. Se l'SQL originale era più lungo di 200 righe multiple di caratteri, STL_DDLTEXT può contenere più righe in sequence
.
SELECT xid, sequence, LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') WITHIN GROUP (ORDER BY sequence) as query_statement
FROM stl_ddltext GROUP BY xid, sequence ORDER BY xid, sequence;
xid | sequence | query_statement
--------+-----------+-----------------
7886671 0 create external schema schema_spectrum_uddh\nfrom data catalog\ndatabase 'spectrum_db_uddh'\niam_role ''\ncreate external database if not exists;
7886752 0 CREATE EXTERNAL TABLE schema_spectrum_uddh.soccer_league\n(\n league_rank smallint,\n prev_rank smallint,\n club_name varchar(15),\n league_name varchar(20),\n league_off decimal(6,2),\n le
7886752 1 ague_def decimal(6,2),\n league_spi decimal(6,2),\n league_nspi smallint\n)\nROW FORMAT DELIMITED \n FIELDS TERMINATED BY ',' \n LINES TERMINATED BY '\\n\\l'\nstored as textfile\nLOCATION 's
7886752 2 3://mybucket-spectrum-uddh/'\ntable properties ('skip.header.line.count'='1');
...
Per ricostruire l'SQL archiviato nella colonna text
di STL_DDLTEXT, eseguire la seguente istruzione SQL. Unisce istruzioni DDL di uno o più segmenti nella colonna text
. Prima di eseguire l'SQL ricostruito, sostituire tutti i caratteri speciali (\n
) con una nuova riga nel client SQL. I risultati della seguente istruzione SELECT riuniscono tre righe in ordine di sequenza per ricostruire l'SQL, nel campo query_statement
.
SELECT LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement
FROM stl_ddltext GROUP BY xid, endtime order by xid, endtime;
query_statement
--------------
create external schema schema_spectrum_uddh\nfrom data catalog\ndatabase 'spectrum_db_uddh'\niam_role ''\ncreate external database if not exists;
CREATE EXTERNAL TABLE schema_spectrum_uddh.soccer_league\n(\n league_rank smallint,\n prev_rank smallint,\n club_name varchar(15),\n league_name varchar(20),\n league_off decimal(6,2),\n league_def decimal(6,2),\n league_spi decimal(6,2),\n league_nspi smallint\n)\nROW FORMAT DELIMITED \n FIELDS TERMINATED BY ',' \n LINES TERMINATED BY '\\n\\l'\nstored as textfile\nLOCATION 's3://mybucket-spectrum-uddh/'\ntable properties ('skip.header.line.count'='1');