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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SVL_QLOG

SVL_QLOG 视图包含针对数据库运行的所有查询的日志。

Amazon Redshift 创建 SVL_QLOG 视图作为 STL_QUERY 表中信息的可读子集。使用该表可找出最近运行的查询的查询 ID,或查看完成某项查询用了多长时间。

SVL_QLOG 对所有用户可见。超级用户可以查看所有行;普通用户只能看到自己的数据。有关更多信息,请参阅 Visibility of data in system tables and views

表列

列名称 数据类型 Description
userid integer 生成该条目的用户 ID。
query integer 查询 ID。您可以使用此 ID 联接各种其他系统表和视图。
xid bigint 事务 ID。
pid integer 与查询关联的进程 ID。
starttime timestamp 开始执行语句的确切时间,秒的小数部分以 6 位精度表示 – 例如:2009-06-12 11:29:19.131358
endtime timestamp 执行完语句的确切时间,秒的小数部分以 6 位精度表示 – 例如:—2009-06-12 11:29:19.193640
elapsed bigint 执行查询花费了多长时间(单位为微秒)。
aborted integer 如果查询已由系统中止或已由用户取消,则此列包含 1。 如果查询运行完成,则此列包含 0。 因工作负载管理目的中止并随后重新启动的查询在此列中的值也为 1
label character(320) 用于运行查询的文件的名称或使用 SET QUERY_GROUP 命令定义的标签。如果查询并非基于文件或未设置 QUERY_GROUP 参数,则此字段值为 default
substring character(60) 截断的查询文本。
source_query integer 如果查询使用了结果缓存,则是缓存结果源自的查询的查询 ID。如果未使用结果缓存,则此字段值为 NULL
concurrency_scaling_status_txt text 关于查询运行在主集群还是并发扩展集群上的描述。
from_sp_call integer 如果从存储过程调用了查询,则为过程调用的查询 ID。如果没有在存储过程中运行查询,则此字段为 NULL

示例查询

下面的示例返回 userid = 100 的用户最近执行的五个数据库查询的查询 ID、执行时间和截断的查询文本。

select query, pid, elapsed, substring from svl_qlog where userid = 100 order by starttime desc limit 5; query | pid | elapsed | substring --------+-------+----------+----------------------------------------------- 187752 | 18921 | 18465685 | select query, elapsed, substring from svl_... 204168 | 5117 | 59603 | insert into testtable values (100); 187561 | 17046 | 1003052 | select * from pg_table_def where tablename... 187549 | 17046 | 1108584 | select * from STV_WLM_SERVICE_CLASS_CONFIG 187468 | 17046 | 5670661 | select * from pg_table_def where schemaname... (5 rows)

下面的示例返回已取消的查询 (aborted=1) 的 SQL 脚本名称(LABEL 列)和已用时间:

select query, elapsed, trim(label) querylabel from svl_qlog where aborted=1; query | elapsed | querylabel -------+----------+------------------------- 16 | 6935292 | alltickittablesjoin.sql (1 row)