SVL_MULTI_STATEMENT_VIOLATIONS
使用 SVL_MULTI_STATEMENT_VIOLATIONS 视图获取已在系统上运行的违反了事务数据块限制的所有 SQL 命令的完整记录。
当您在事务数据块或多语句请求内运行 Amazon Redshift 限制的以下 SQL 命令时,会发生违规情况:
DROP EXTERNAL TABLE
RENAME EXTERNAL TABLE
ALTER EXTERNAL TABLE
CREATE TABLESPACE。
DROP TABLESPACE
REBUILDCAT
INDEXCAT
REINDEX DATABASE
注意
如果此视图中有任何条目,请更改相应的应用程序和 SQL 脚本。我们建议更改应用程序代码,以便将这些受限 SQL 命令的使用移到事务数据块之外。如果您需要进一步帮助,请联系 AWS Support。
SVL_MULTI_STATEMENT_VIOLATIONS 对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅 系统表和视图中的数据可见性。
此表中的部分或全部数据也可以在 SYS 监控视图 SYS_QUERY_HISTORY 中找到。SYS 监控视图中的数据经过格式化处理,便于使用和理解。我们建议您使用 SYS 监控视图进行查询。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
userid | integer | 导致违规的用户的 ID。 |
数据库 | 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 是第二行,依此类推。 |
type | varchar(10) | SQL 语句的类型:QUERY 、DDL 或 UTILITY 。 |
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 ...