SVL_MULTI_STATEMENT_VIOLATIONS - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

SVL_MULTI_STATEMENT_VIOLATIONS

使用 SVL_MULTI_STATEMENT_VIOLATIONS 视图获取已在系统上运行的违反了事务数据块限制的所有 SQL 命令的完整记录。

当您在事务数据块或多语句请求内运行 Amazon Redshift 限制的以下 SQL 命令时,会发生违规情况:

注意

如果此视图中有任何条目,请更改相应的应用程序和 SQL 脚本。我们建议更改应用程序代码,以便将这些受限 SQL 命令的使用移到事务数据块之外。如果您需要进一步帮助,请联系 Amazon Support。

SSVL_MULTI_STATEMENT_VIOLATIONS 对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅系统表和视图中的数据可见性

表列

列名称 数据类型 说明
userid integer 导致违规的用户的 ID。
database character(32) 用户连接到的数据库的名称。
cmdname character(20) 无法在事务数据块或多语句请求内运行的命令的名称。例如,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、CLUSTER、COPY、CREATE TABLESPACE 和 DROP TABLESPACE。
xid bigint 与语句关联的事务 ID。
pid integer 语句的进程 ID。
label character(320) 用于运行查询的文件的名称或使用 SET QUERY_GROUP 命令定义的标签。如果查询并非基于文件或未设置 QUERY_GROUP 参数,则此字段为空。
starttime timestamp 开始执行语句的确切时间,秒的小数部分以 6 位精度表示 – 例如:2009-06-12 11:29:19.131358
endtime timestamp 执行完语句的确切时间,秒的小数部分以 6 位精度表示 – 例如:2009-06-12 11:29:19.193640
sequence integer 当一个语句包含 200 多个字符时,将为该语句记录额外的行。序列 0 是第一行,1 是第二行,依此类推。
类型 varchar(10) SQL 语句的类型:QUERYDDLUTILITY
text character(200) SQL 文本,以 200 个字符递增。此字段可能包含反斜杠 (\\) 和换行符 (\n) 等特殊字符。

示例查询

以下查询返回多个具有违规情况的语句。

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