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 :
DROP EXTERNAL TABLE
RENAME EXTERNAL TABLE
ALTER EXTERNAL TABLE
CREATE TABLESPACE
DROP TABLESPACE
REBUILDCAT
INDEXCAT
REINDEX DATABASE
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 ...