SVL_MULTI_STATEMENT_VIOLATIONS - Amazon Redshift

SVL_MULTI_STATEMENT_VIOLATIONS

Utilice la vista SVL_MULTI_STATEMENT_VIOLATIONS para obtener un registro completo de todos los comandos SQL que se ejecutan en el sistema e infringen las restricciones de bloque de transacciones.

Las infracciones se producen cuando ejecuta cualquiera de los siguientes comandos SQL que Amazon Redshift restringe dentro de un bloque de transacción o solicitudes de varias instrucciones:

nota

Si hay entradas en esta vista, cambie las aplicaciones y los scripts SQL correspondientes. Se recomienda cambiar el código de la aplicación para mover el uso de estos comandos SQL restringidos fuera del bloque de transacciones. Si necesita asistencia adicional, contacte con AWS Support.

SVL_MULTI_STATEMENT_VIOLATIONS es visible para todos los usuarios. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Algunos o todos los datos de esta tabla también están en la vista de monitoreo SYS SYS_QUERY_HISTORY. Los datos de la vista de monitoreo SYS están formateados para que sean más fáciles de usar y entender. Se recomienda utilizar la vista de monitoreo SYS para las consultas.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
userid integer El ID del usuario que causó la infracción.
base de datos character (32) El nombre de la base de datos a la que estaba conectado el usuario.
cmdname character(20) El nombre del comando que no se puede ejecutar dentro de una solicitud de bloque de transacción o de varias instrucciones. Por ejemplo, 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 en recursos externos, CLUSTER, COPY, CREATE TABLESPACE y DROP TABLESPACE.
xid bigint El ID de la transacción asociado a la instrucción.
pid integer El ID del proceso para la instrucción.
etiqueta character(320) Ya sea el nombre del archivo utilizado para ejecutar la consulta o una etiqueta definida con un comando SET QUERY_GROUP. Si la consulta no se basa en archivos o si no se establece el parámetro QUERY_GROUP, el valor del campo queda en blanco.
starttime Marca de tiempo La hora exacta en que la instrucción comenzó a ejecutarse, con 6 dígitos de precisión para las fracciones de segundos; por ejemplo: 2009-06-12 11:29:19.131358
endtime Marca de tiempo La hora exacta en que la instrucción terminó de ejecutarse, con 6 dígitos de precisión para las fracciones de segundos; por ejemplo: 2009-06-12 11:29:19.193640
sequence integer Cuando una única instrucción tiene más de 200 caracteres, se registran filas adicionales para esa instrucción. Secuencia 0 es la primera fila, 1 es la segunda y, así, sucesivamente.
type varchar (10) El tipo de instrucción SQL: QUERY, DDL o UTILITY.
texto character(200) El texto SQL, en incrementos de 200 caracteres. El campo puede contener caracteres especiales como una barra inversa(\\) y una nueva línea (\n).

Consulta de ejemplo

En la siguiente consulta se devuelven varias instrucciones que tienen infracciones.

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