SVL_MULTI_STATEMENT_VIOLATIONS - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SVL_MULTI_STATEMENT_VIOLATIONS

Utilizzare la visualizzazione SVL_MULTI_STATEMENT_VIOLATIONS per ottenere un record completo di tutti i comandi SQL eseguiti nel sistema che viola le restrizioni dei blocchi di transazioni.

Le violazioni si verificano quando emetti uno dei seguenti comandi SQL che Amazon Redshift limita all'interno di un blocco di transazioni o di richieste con più istruzioni:

Nota

Se sono presenti voci in questa visualizzazione, allora sarà necessario modificare le applicazioni e gli script SQL corrispondenti. Si consiglia di modificare il codice dell'applicazione per spostare l'utilizzo di questi comandi SQL limitati al di fuori del blocco delle transazioni. Se hai bisogno di ulteriore assistenza, contatta l' AWS assistenza.

SVL_MULTI_STATEMENT_VIOLATIONS è visibile a tutti gli utenti. Gli utenti con privilegi avanzati visualizzano tutte le righe; gli utenti regolari visualizzano solo i propri dati. Per ulteriori informazioni, consulta Visibilità dei dati nelle tabelle e nelle viste di sistema.

Alcuni o tutti i dati di questa tabella sono definiti anche nella vista di monitoraggio SYS SYS_QUERY_HISTORY. I dati nella vista di monitoraggio SYS sono formattati in modo da essere più facili da usare e comprendere. Ti consigliamo di utilizzare la vista di monitoraggio SYS per le query.

Colonne di tabella

Nome colonna Tipo di dati Descrizione
userid integer L'ID dell'utente che ha causato la violazione.
database character(32) Il nome del database a cui era connesso l'utente.
cmdname character(20) Il nome del comando che non può essere eseguito all'interno di un blocco di transazione o di una richiesta con più istruzioni. Ad esempio, 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 sulle risorse esterne, CLUSTER, COPY, CREATE TABLESPACE e DROP TABLESPACE.
xid bigint L'ID di transazione associato all'istruzione.
pid integer L'ID di processo per l'istruzione.
etichetta character(320) Il nome del file utilizzato per eseguire la query o un'etichetta definita con un comando SET QUERY GROUP. Se la query non è basata su file o il parametro QUERY_GROUP non è impostato, questo campo è vuoto.
starttime timestamp L'ora esatta in cui è iniziata l'esecuzione dell'istruzione, con 6 cifre di precisione per le frazioni di secondo, ad esempio: 2009-06-12 11:29:19.131358.
endtime timestamp L'ora esatta in cui è terminata l'esecuzione dell'istruzione, con 6 cifre di precisione per le frazioni di secondo, ad esempio: 2009-06-12 11:29:19.193640.
sequenza integer Quando una singola istruzione contiene più di 200 caratteri, vengono registrate delle righe aggiuntive per tale istruzione. La sequenza 0 è la prima riga, 1 la seconda e così via.
tipo varchar(10) Il tipo di istruzione SQL: QUERY, DDL o UTILITY.
text character(200) Il testo SQL, in incrementi da 200 caratteri. Questo campo potrebbe contenere caratteri speciali come barra rovesciata (\\) e nuova riga (\n).

Query di esempio

La query seguente restituisce più istruzioni che hanno delle violazioni.

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