Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
STL_UTILITYTEXT
Menangkap teks perintah SQL non-pilih yang dijalankan pada database.
Kueri tampilan STL_UTILITYTEXT untuk menangkap subset pernyataan SQL berikut yang dijalankan pada sistem:
-
BATALKAN, MULAI, KOMIT, AKHIRI, KEMBALIKAN
-
MENGANALISA
-
PANGGILAN
-
CANCEL (BATALKAN)
-
KOMENTAR
-
MEMBUAT, MENGUBAH, MENGHAPUS DATABASE
-
BUAT, UBAH, JATUHKAN PENGGUNA
-
EXPLAIN
-
MEMBERIKAN, MENCABUT
-
KUNCI
-
MENGATUR ULANG
-
SET
-
MENUNJUKKAN
-
MEMOTONG
Lihat jugaSTL_DDLTEXT,STL_QUERYTEXT, danSVL_STATEMENTTEXT.
Gunakan kolom STARTTIME dan ENDTIME untuk mengetahui pernyataan mana yang dicatat selama periode waktu tertentu. Blok panjang teks SQL dipecah menjadi baris sepanjang 200 karakter; kolom SEQUENCE mengidentifikasi fragmen teks yang termasuk dalam satu pernyataan.
Tabel sistem STL_UTILITYTEXT mendukung operasi MANUAL dan AUTO REFRESH dari tampilan yang terwujud. Untuk mengidentifikasi AUTO REFRESH pada tampilan yang terwujud, temukan kolomlabel. Semua kueri AUTO REFRESH memiliki label dengan nilaimaintenance.
STL_UTILITYTEXT 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 pemantauan SYSSYS_QUERY_HISTORY. Data dalam tampilan pemantauan SYS diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan pemantauan SYS untuk kueri Anda.
Kolom tabel
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
| Userid | integer | ID pengguna yang membuat entri. |
| xid | bigint | ID Transaksi. |
| pid | integer | ID proses yang terkait dengan pernyataan kueri. |
| label | karakter (320) | Baik nama file yang digunakan untuk menjalankan query 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 dalam UTC saat kueri dimulai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358. |
| waktu akhir | timestamp | Waktu dalam UTC saat kueri selesai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358. |
| urutan | integer | Ketika pernyataan tunggal 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) | Teks SQL, dalam penambahan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti backslash (\\) dan newline (). \n |
Kueri Sampel
Kueri berikut mengembalikan teks untuk perintah “utilitas” yang dijalankan pada 26 Januari 2012. Dalam hal ini, beberapa perintah SET dan perintah SHOW ALL dijalankan:
select starttime, sequence, rtrim(text) from stl_utilitytext where starttime like '2012-01-26%' order by starttime, sequence; starttime | sequence | rtrim ---------------------------+-----+---------------------------------- 2012-01-26 13:05:52.529235 | 0 | show all; 2012-01-26 13:20:31.660255 | 0 | SET query_group to '' 2012-01-26 13:20:54.956131 | 0 | SET query_group to 'soldunsold.sql' ...
Merekonstruksi SQL Tersimpan
Untuk merekonstruksi SQL yang disimpan di text kolom STL_UTILITYTEXT, jalankan pernyataan SELECT untuk membuat SQL dari 1 atau lebih bagian di kolom. text Sebelum menjalankan SQL yang direkonstruksi, ganti karakter khusus (\n) dengan baris baru. Hasil dari pernyataan SELECT berikut adalah baris SQL yang direkonstruksi di query_statement lapangan.
SELECT LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement FROM stl_utilitytext GROUP BY xid order by xid;
Misalnya, kueri berikut menetapkan query_group ke string nol. Kueri itu sendiri lebih panjang dari 200 karakter dan disimpan dalam beberapa bagian di STL_UTILITYTEXT.
set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';
Dalam contoh ini, query disimpan dalam 2 bagian (baris) di text kolom STL_UTILITYTEXT.
select query, sequence, text from stl_utilitytext where query=pg_last_query_id() order by query desc, sequence limit 10;
starttime | sequence | text ----------------------------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2019-07-23 22:55:34.926198 | 0 | set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000 2019-07-23 22:55:34.926198 | 1 | 000000';
Untuk merekonstruksi SQL yang disimpan di STL_UTILITYTEXT, jalankan SQL berikut.
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS query_statement from stl_utilitytext where query=pg_last_query_id();
Untuk menggunakan SQL yang direkonstruksi yang dihasilkan di klien Anda, ganti karakter khusus (\n) dengan baris baru.
query_statement ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';