Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
STL_UTILITYTEXT
Erfasst den Text von SELECT SQL Nichtbefehlen, die in der Datenbank ausgeführt werden.
Fragen Sie die UTILITYTEXT Ansicht STL _ ab, um die folgende Teilmenge von SQL Anweisungen zu erfassen, die auf dem System ausgeführt wurden:
-
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
Vgl. auch STL_DDLTEXT, STL_QUERYTEXT und SVL_STATEMENTTEXT.
Verwenden Sie die ENDTIME Spalten STARTTIME und, um herauszufinden, welche Anweisungen während eines bestimmten Zeitraums protokolliert wurden. Lange SQL Textblöcke werden in Zeilen mit einer Länge von 200 Zeichen aufgeteilt. SEQUENCE In der Spalte werden Textfragmente identifiziert, die zu einer einzelnen Anweisung gehören.
STL_ UTILITYTEXT ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
Einige oder alle Daten in dieser Tabelle befinden sich auch in der SYS ÜberwachungsansichtSYS_QUERY_HISTORY. Die Daten in der SYS Überwachungsansicht sind so formatiert, dass sie einfacher zu verwenden und zu verstehen sind. Wir empfehlen Ihnen, die SYS Überwachungsansicht für Ihre Abfragen zu verwenden.
Tabellenspalten
Spaltenname | Datentyp | Beschreibung |
---|---|---|
userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
xid | bigint | Transaktions-ID. |
pid | integer | Die mit der Abfrageanweisung verbundene Prozess-ID. |
label | Zeichen (320) | Entweder der Name der Datei, mit der die Abfrage ausgeführt wurde, oder ein mit dem GROUP Befehl SET QUERY _ definiertes Label. Wenn die Abfrage nicht dateibasiert ist oder der GROUP Parameter QUERY _ nicht festgelegt ist, ist dieses Feld leer. |
starttime | Zeitstempel | Uhrzeit, zu der UTC die Abfrage gestartet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358 . |
endtime | Zeitstempel | ZeitUTC, in der die Abfrage beendet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358 . |
sequence | integer | Wenn eine einzelne Anweisung mehr als 200 Zeichen enthält, werden weitere Zeilen für diese Anweisung protokolliert. Sequenz 0 ist die erste Zeile, 1 die zweite usw. |
Text | character(200) | SQLText, in Schritten von 200 Zeichen. Diese Feld kann Sonderzeichen wie Backslash (\\ ) und Zeilenumbruch (\n ) enthalten. |
Beispielabfragen
Die folgende Abfrage gibt den Text für „Utility“-Befehle aus, die am 26. Januar 2012 ausgeführt wurden. In diesem Fall wurden einige SET Befehle und ein SHOW ALL Befehl ausgeführt:
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' ...
Gespeicherte Daten rekonstruieren SQL
Um das in der text
Spalte STL _ SQL gespeicherte Objekt zu rekonstruierenUTILITYTEXT, führen Sie eine SELECT Anweisung aus, um es SQL aus einem oder mehreren Teilen der Spalte zu erstellen. text
Bevor Sie die rekonstruierte Datei ausführenSQL, ersetzen Sie alle Sonderzeichen (\n
) durch eine neue Zeile. Das Ergebnis der folgenden SELECT Anweisung sind Zeilen von rekonstruierten Zeilen SQL im query_statement
Feld.
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;
Die folgende Abfrage setzt beispielsweise die query_group auf eine Zeichenfolge von Nullen. Die Abfrage selbst ist länger als 200 Zeichen und wird teilweise in STL _ UTILITYTEXT gespeichert.
set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';
In diesem Beispiel wird die Abfrage in zwei Teilen (Zeilen) in der text
Spalte STL _ gespeichertUTILITYTEXT.
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';
Führen Sie den folgenden SQL Befehl ausUTILITYTEXT, um die in STL _ SQL gespeicherten Daten zu rekonstruieren.
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();
Um das rekonstruierte Ergebnis SQL in Ihrem Client zu verwenden, ersetzen Sie alle Sonderzeichen (\n
) durch eine neue Zeile.
query_statement ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000';