Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
STL_UTILITYTEXT
Menangkap teks SELECT SQL non-perintah yang dijalankan pada database.
Kueri UTILITYTEXT tampilan STL _ untuk menangkap subset SQL pernyataan berikut yang dijalankan di sistem:
-
ABORT, BEGIN, COMMIT, END, ROLLBACK
-
ANALYZE
-
CALL
-
CANCEL
-
COMMENT
-
CREATE, ALTER, DROP DATABASE
-
CREATE, ALTER, DROP USER
-
EXPLAIN
-
GRANT, REVOKE
-
LOCK
-
RESET
-
SET
-
SHOW
-
TRUNCATE
Lihat jugaSTL_DDLTEXT,STL_QUERYTEXT, danSVL_STATEMENTTEXT.
Gunakan ENDTIME kolom STARTTIME dan untuk mengetahui pernyataan mana yang dicatat selama periode waktu tertentu. Blok SQL teks yang panjang dipecah menjadi baris sepanjang 200 karakter; SEQUENCE kolom mengidentifikasi fragmen teks yang termasuk dalam satu pernyataan.
STL_ UTILITYTEXT 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_HISTORY. 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 yang terkait dengan pernyataan query. |
label | karakter (320) | Entah nama file yang digunakan untuk menjalankan kueri atau label yang ditentukan dengan GROUP perintah SET QUERY _. Jika kueri tidak berbasis file atau GROUP parameter QUERY _ tidak disetel, bidang ini kosong. |
waktu mulai | timestamp | Waktu di UTC mana kueri dimulai. Total waktu termasuk antrian dan eksekusi. dengan 6 digit presisi untuk detik pecahan. Sebagai contoh: 2009-06-12 11:29:19.131358 . |
akhir waktu | timestamp | Waktu di UTC mana 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 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
Kueri berikut mengembalikan teks untuk perintah “utilitas” yang dijalankan pada tanggal 26 Januari 2012. Dalam hal ini, beberapa SET perintah dan SHOW ALL perintah 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' ...
Rekonstruksi Tersimpan SQL
Untuk merekonstruksi yang SQL disimpan di text
kolom STL _UTILITYTEXT, 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 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, query berikut menetapkan query_group ke string nol. Kueri itu sendiri lebih panjang dari 200 karakter dan disimpan di bagian-bagian di STL _UTILITYTEXT.
set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';
Dalam contoh ini, kueri 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 yang SQL disimpan di STL _UTILITYTEXT, 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 query_statement from stl_utilitytext where query=pg_last_query_id();
Untuk menggunakan hasil yang direkonstruksi SQL di klien Anda, ganti karakter khusus (\n
) apa pun dengan baris baru.
query_statement ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';