STL_QUERYTEXT - Amazon Redshift

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

STL_QUERYTEXT

Menangkap teks kueri untuk SQL perintah.

Kueri QUERYTEXT tampilan STL _ untuk menangkap SQL yang dicatat untuk pernyataan berikut:

  • SELECT, SELECT INTO

  • INSERT, UPDATE, DELETE

  • COPY

  • UNLOAD

  • Kueri yang dihasilkan dengan menjalankan VACUUM dan ANALYZE

  • CREATETABLESEBAGAI (CTAS)

Untuk menanyakan aktivitas pernyataan ini selama periode waktu tertentu, gabungkan QUERY tampilan STL _ QUERYTEXT dan STL _.

catatan

QUERYTEXTTampilan STL _ QUERY dan STL _ hanya berisi informasi tentang kueri, bukan utilitas dan DDL perintah lainnya. Untuk daftar dan informasi tentang semua pernyataan yang dijalankan oleh Amazon Redshift, Anda juga dapat menanyakan tampilan STL _ DDLTEXT dan STL _UTILITYTEXT. Untuk daftar lengkap semua pernyataan yang dijalankan oleh Amazon Redshift, Anda dapat menanyakan tampilan SVL _STATEMENTTEXT.

Lihat jugaSTL_DDLTEXT,STL_UTILITYTEXT, danSVL_STATEMENTTEXT.

STL_ QUERYTEXT dapat dilihat 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 pemantauanSYS_QUERY_TEXT. Data dalam tampilan SYS pemantauan diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan SYS pemantauan untuk pertanyaan Anda.

Kolom tabel

Nama kolom Jenis data Deskripsi
userid integer ID pengguna yang membuat entri.
xid bigint ID Transaksi.
pid integer ID Proses. Biasanya, semua kueri dalam sesi dijalankan dalam proses yang sama, jadi nilai ini biasanya tetap konstan jika Anda menjalankan serangkaian kueri dalam sesi yang sama. Setelah peristiwa internal tertentu, Amazon Redshift mungkin memulai ulang sesi aktif dan menetapkan yang baru. PID Untuk informasi selengkapnya, lihat STL_RESTARTED_SESSIONS. Anda dapat menggunakan kolom ini untuk bergabung dengan STL_ERROR tampilan.
kueri integer ID kueri. Kolom kueri dapat digunakan untuk bergabung dengan tabel dan tampilan sistem lainnya.
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.
text karakter (200) SQLteks, dalam peningkatan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti garis miring terbalik (\\) dan baris baru (). \n

Kueri Sampel

Anda dapat menggunakan fungsi PG_ BACKEND _ PID () untuk mengambil informasi untuk sesi saat ini. Misalnya, query berikut mengembalikan ID query dan sebagian dari teks query untuk query selesai dalam sesi saat ini.

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)

Rekonstruksi tersimpan SQL

Untuk merekonstruksi yang SQL disimpan di text kolom STL _QUERYTEXT, jalankan SELECT pernyataan untuk membuat SQL dari 1 atau lebih bagian di text kolom. Sebelum menjalankan rekonstruksiSQL, ganti setiap (\n) karakter khusus dengan baris baru. Hasil dari SELECT pernyataan berikut adalah baris direkonstruksi SQL di query_statement lapangan.

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;

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

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 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;

Untuk merekonstruksi yang SQL disimpan di STL _QUERYTEXT, jalankan yang berikut ini. 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();

Untuk menggunakan hasil yang direkonstruksi SQL 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;