SYS_QUERY_TEXT - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SYS_QUERY_TEXT

Utilisez SYS_QUERY_TEXT pour afficher le texte de toutes les requêtes. Chaque ligne représente le texte des requêtes de 4 000 caractères maximum en commençant par le numéro de séquence 0. Lorsque l’instruction de requête contient plus de 4 000 caractères, des lignes supplémentaires sont enregistrées pour l’instruction en incrémentant le numéro de séquence pour chaque ligne. Cette vue journalise tous les textes des requêtes des utilisateurs, tels que les requêtes DDL, utilitaires, Amazon Redshift et les requêtes réservées au nœud leader.

SYS_QUERY_TEXT est visible par tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour plus d'informations, consultez Visibilité des données dans les tables et vues système.

Colonnes de la table

Nom de la colonne Type de données Description
user_id entier Identificateur de l’utilisateur qui a envoyé la requête.
query_id bigint Identificateur de requête.
transaction_id bigint Identificateur de la transaction associé à l’instruction.
session_id entier Identificateur du processus de la session exécutant la requête.
start_time timestamp Moment auquel la requête démarre.
sequence entier Lorsqu’une seule instruction contient plus de 4 000 caractères, des lignes supplémentaires sont enregistrées pour l’instruction. Sequence 0 correspond à la première ligne, 1 à la deuxième ligne, et ainsi de suite.
text character(4000) Le texte de la requête SQL par incréments de 4 000 caractères. Ce champ peut contenir des caractères spéciaux tels qu’une barre oblique inverse (\) et un caractère de saut de ligne (\n).

Exemples de requêtes

La requête suivante renvoie les requêtes en cours d’exécution et en file d’attente.

SELECT user_id, query_id, transaction_id, session_id, start_time, sequence, trim(text) as text from sys_query_text ORDER BY sequence;

Exemple de sortie.

user_id | query_id | transaction_id | session_id | start_time | sequence | text --------+----------+-----------------+------------+----------------------------+----------+---------------------------------------------------------------------------------------------------------------------- 100 | 4 | 1396 | 1073750220 | 2023-04-28 16:44:55.887184 | 0 | SELECT trim(text) as text, sequence FROM sys_query_text WHERE query_id = pg_last_query_id() AND user_id > 1 AND start _time > '2023-04-28 16:44:55.922705+00:00'::timestamp order by sequence;

La requête suivante renvoie les autorisations accordées ou révoquées des groupes de votre base de données.

SELECT SPLIT_PART(text, ' ', 1) as grantrevoke, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'GROUP'))), ' ', 2) as group, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), ' '))), 'ON', 1) as type, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 2) || ' ' || SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 3) as entity FROM SYS_QUERY_TEXT WHERE (text LIKE 'GRANT%' OR text LIKE 'REVOKE%') AND text LIKE '%GROUP%'; +-------------+----------+--------+----------+ | grantrevoke | group | type | entity | +-------------+----------+--------+----------+ | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | USAGE | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | +-------------+----------+--------+----------+