STL_DDLTEXT - Amazon Redshift

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_DDLTEXT

Cattura le seguenti DDL istruzioni che sono state eseguite sul sistema.

Queste DDL istruzioni includono le interrogazioni 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 visualizzazioni forniscono una cronologia dei SQL comandi eseguiti sul sistema; questa cronologia è utile per la risoluzione dei problemi e per creare una traccia di controllo di tutte le attività del sistema.

ENDTIMEUtilizzate le colonne STARTTIME e per scoprire quali istruzioni sono state registrate in un determinato periodo di tempo. I blocchi di SQL testo lunghi sono suddivisi in righe lunghe 200 caratteri; la SEQUENCE colonna identifica i frammenti di testo che appartengono a una 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 disponibili anche nella visualizzazione di SYS monitoraggioSYS_QUERY_HISTORY. 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 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 GROUP comando SET QUERY _. Se la query non è basata su file o il GROUP parametro QUERY _ non è impostato, questo campo è vuoto.
starttime timestamp Ora in cui UTC è iniziata 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 Ora in UTC cui la query è terminata. 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) SQLtesto, con incrementi di 200 caratteri. Questo campo potrebbe contenere caratteri speciali come barra rovesciata (\\) e nuova riga (\n).

Query di esempio

La seguente query restituisce record che includono istruzioni eseguite in precedenza. DDL

select xid, starttime, sequence, substring(text,1,40) as text from stl_ddltext order by xid desc, sequence;

Di seguito è riportato un esempio di output che mostra quattro CREATE TABLE istruzioni. Le DDL istruzioni vengono visualizzate nella text colonna, che viene troncata per motivi 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 memorizzata SQL

Di seguito SQL sono elencate le righe memorizzate nella text colonna _. STL DDLTEXT Le righe sono ordinate per xid e sequence. Se l'originale SQL era più lungo di 200 caratteri su più righe, STL _ DDLTEXT può contenere più righe disequence.

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 quanto SQL memorizzato nella text colonna STL _DDLTEXT, esegui la seguente SQL istruzione. Mette insieme DDL le istruzioni di uno o più segmenti della colonna. text Prima di eseguire la ricostruzioneSQL, sostituisci qualsiasi carattere speciale (\n) con una nuova riga nel tuo SQL client. I risultati della seguente SELECT istruzione mettono insieme tre righe in sequenza per ricostruire ilSQL, 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');