SVL_QLOG
SVL_QLOG 视图包含针对数据库运行的所有查询的日志。
Amazon Redshift 创建 SVL_QLOG 视图作为 STL_QUERY 表中信息的可读子集。使用该表可找出最近运行的查询的查询 ID,或查看完成某项查询用了多长时间。
SVL_QLOG 对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅 系统表和视图中的数据可见性。
此表中的部分或全部数据也可以在 SYS 监控视图 SYS_QUERY_HISTORY 中找到。SYS 监控视图中的数据经过格式化处理,便于使用和理解。我们建议您使用 SYS 监控视图进行查询。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
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)