SVL_MULTI_STATEMENT_VIOLATIONS - 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.

SVL_MULTI_STATEMENT_VIOLATIONS

Utilisez la vue SVL_MULTI_STATEMENT_VIOLATIONS pour obtenir un enregistrement complet de toutes les commandes SQL exécutées sur le système qui enfreignent les restrictions de bloc de transaction.

Des violations se produisent lorsque vous exécutez l’une des commandes SQL suivantes qu’Amazon Redshift restreint à l’intérieur d’un bloc de transaction ou de requêtes multi-instructions :

Note

S’il y a des entrées dans cette vue, modifiez les applications et scripts SQL correspondants. Nous vous recommandons de modifier le code de votre application pour déplacer l’utilisation de ces commandes SQL restreintes en dehors du bloc de transactions. Si vous avez besoin d'une assistance supplémentaire, contactez AWS le Support.

SVL_MULTI_STATEMENT_VIOLATIONS 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.

Tout ou partie des données de cette table sont également disponibles dans la vue de surveillance SYS SYS_QUERY_HISTORY. Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre. Nous vous recommandons d’utiliser la vue de surveillance SYS pour vos requêtes.

Colonnes de la table

Nom de la colonne Type de données Description
userid entier L’ID de l’utilisateur à l’origine de la violation.
database character(32) Nom de la base de données à laquelle l’utilisateur était connecté.
cmdname character(20) Le nom de la commande qui ne peut pas s’exécuter à l’intérieur d’un bloc de transaction ou d’une requête multi-instructions. Par exemple : CREATE DATABASE, DROP DATABASE, ALTER TABLE APPEND, CREATE EXTERNAL TABLE, DROP EXTERNAL TABLE, RENAME EXTERNAL TABLE, ALTER EXTERNAL TABLE, CREATE LIBRARY, DROP LIBRARY, REBUILDCAT, INDEXCAT, REINDEX DATABASE, VACUUM, GRANT sur des ressources externes, CLUSTER, COPY, CREATE TABLESPACE et DROP TABLESPACE.
xid bigint ID de transaction associé à l’instruction.
pid entier ID de processus de l’instruction.
étiquette caractère (320) Le nom du fichier utilisé pour exécuter la requête ou une étiquette définie avec une commande SET QUERY_GROUP. Si la requête n’est pas basée sur un fichier ou si le paramètre QUERY_GROUP n’est pas défini, le champ est vide.
starttime timestamp Heure exacte à laquelle l’exécution de l’instruction a démarré, avec six chiffres de précision pour les fractions de secondes, par exemple : 2009-06-12 11:29:19.131358
endtime timestamp Heure exacte à laquelle l’exécution de l’instruction s’est terminée, avec six chiffres de précision pour les fractions de secondes, par exemple : 2009-06-12 11:29:19.193640
sequence entier Lorsqu’une seule instruction contient plus de 200 caractères, des lignes supplémentaires sont enregistrées pour l’instruction. Sequence 0 correspond à la première ligne, 1 à la deuxième, et ainsi de suite.
type varchar(10) Type d’instruction SQL : QUERY, DDL ou UTILITY.
text character(200) Texte SQL, par incréments de 200 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).

Exemple de requête

La requête suivante renvoie plusieurs instructions comportant des violations.

select * from svl_multi_statement_violations order by starttime asc; userid | database | cmdname | xid | pid | label | starttime | endtime | sequence | type | text ============================================================================================================================== 1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | DDL | create table c(b int); 1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | create database b; 1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | COMMIT ...