SVL_STATEMENTTEXT - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SVL_STATEMENTTEXT

Gunakan tampilan SVL_STATEMENTTEXT untuk mendapatkan catatan lengkap dari semua perintah SQL yang telah dijalankan pada sistem.

Tampilan SVL_STATEMENTTEXT berisi gabungan semua baris dalam,, dan tabel. STL_DDLTEXT STL_QUERYTEXT STL_UTILITYTEXT Tampilan ini juga mencakup gabungan ke tabel STL_QUERY.

SVL_STATEMENTTEXT terlihat oleh semua pengguna. Pengguna super dapat melihat semua baris; pengguna biasa hanya dapat melihat data mereka sendiri. Untuk informasi selengkapnya, lihat Visibilitas data dalam tabel dan tampilan sistem.

Beberapa atau semua data dalam tabel ini juga dapat ditemukan di tampilan SYS_QUERY_HISTORY pemantauan SYS. Data dalam tampilan pemantauan SYS diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan pemantauan SYS untuk pertanyaan Anda.

Kolom tabel

Nama kolom Jenis data Deskripsi
userid integer ID pengguna yang membuat entri.
xid bigint ID transaksi yang terkait dengan pernyataan.
pid integer ID proses untuk pernyataan tersebut.
label karakter (320) Entah nama file yang digunakan untuk menjalankan kueri atau label yang ditentukan dengan perintah SET QUERY_GROUP. Jika kueri tidak berbasis file atau parameter QUERY_GROUP tidak disetel, bidang ini kosong.
waktu mulai timestamp Waktu yang tepat ketika pernyataan mulai dijalankan, dengan 6 digit presisi untuk detik pecahan. Misalnya: 2009-06-12 11:29:19.131358
akhir waktu timestamp Waktu yang tepat ketika pernyataan selesai dieksekusi, dengan 6 digit presisi untuk detik pecahan. Misalnya: 2009-06-12 11:29:19.193640
urutan integer Ketika satu pernyataan berisi lebih dari 200 karakter, baris tambahan dicatat untuk pernyataan itu. Urutan 0 adalah baris pertama, 1 adalah yang kedua, dan seterusnya.
jenis varchar (10) Jenis pernyataan SQL:QUERY,DDL, atauUTILITY.
text karakter (200) Teks SQL, dalam peningkatan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti garis miring terbalik (\\) dan baris baru (). \n

Contoh kueri

Query berikut mengembalikan pernyataan DDL yang dijalankan pada 16 Juni 2009:

select starttime, type, rtrim(text) from svl_statementtext where starttime like '2009-06-16%' and type='DDL' order by starttime asc; starttime | type | rtrim ---------------------------|------|-------------------------------- 2009-06-16 10:36:50.625097 | DDL | create table ddltest(c1 int); 2009-06-16 15:02:16.006341 | DDL | drop view alltickitjoin; 2009-06-16 15:02:23.65285 | DDL | drop table sales; 2009-06-16 15:02:24.548928 | DDL | drop table listing; 2009-06-16 15:02:25.536655 | DDL | drop table event; ...

Merekonstruksi SQL yang tersimpan

Untuk merekonstruksi SQL yang disimpan di text kolom SVL_STATEMENTTEXT, jalankan pernyataan SELECT untuk membuat SQL dari 1 atau lebih bagian dalam kolom. text Sebelum menjalankan SQL yang direkonstruksi, ganti setiap (\n) karakter khusus dengan baris baru. Hasil dari pernyataan SELECT berikut adalah baris SQL direkonstruksi di lapangan. 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 SVL_STATEMENTTEXT where pid=pg_backend_pid();

Misalnya, query berikut memilih 3 kolom. Kueri itu sendiri lebih panjang dari 200 karakter dan disimpan di bagian-bagian dalam SVL_STATEMENTTEXT.

select 1 AS a0123456789012345678901234567890123456789012345678901234567890, 2 AS b0123456789012345678901234567890123456789012345678901234567890, 3 AS b012345678901234567890123456789012345678901234 FROM stl_querytext;

Dalam contoh ini, kueri disimpan dalam 2 bagian (baris) di text kolom SVL_STATEMENTTEXT.

select sequence, text from SVL_STATEMENTTEXT where pid = pg_backend_pid() order by starttime, sequence;
sequence | text ----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0 | select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234 1 | \nFROM stl_querytext;

Untuk merekonstruksi SQL yang disimpan di STL_STATEMENTTEXT, jalankan SQL berikut.

select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS text from SVL_STATEMENTTEXT where pid=pg_backend_pid();

Untuk menggunakan SQL yang direkonstruksi yang dihasilkan di klien Anda, ganti karakter khusus (\n) apa pun dengan baris baru.

text ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234\nFROM stl_querytext;