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

SVCS_ALERT_EVENT_LOG

当查询优化程序发现可能指示性能问题的条件时记录警报。该视图派生自 STL_ALERT_EVENT_LOG 系统表,但不显示在并发扩展集群上运行的查询的切片级别。使用 SVCS_ALERT_EVENT_LOG 表标识用于改进查询性能的机会。

一个查询包含多个区段,而且每个区段包含一个或多个步骤。有关更多信息,请参阅查询处理

注意

带有前缀 SVCS 的系统视图提供了有关主集群和并发扩展集群上的查询的详细信息。这些视图与带有前缀 STL 的表类似,但 STL 表仅提供在主集群上运行的查询的信息。

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

表列

列名称 数据类型 描述
userid integer 生成该条目的用户 ID。
query integer 查询 ID。查询列可用于连接其他系统表和视图。
segment integer 标识查询区段的数字。
step integer 运行的查询步骤。
pid integer 与语句和切片关联的进程 ID。如果同一查询在多个切片上运行,则该查询可能有多个 PID。
xid bigint 与语句关联的事务 ID。
event character(1024) 警报事件的描述。
solution character(1024) 建议的解决方案。
event_time 时间戳 查询开始的时间(采用 UTC 表示)。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如:2009-06-12 11:29:19.131358

使用说明

您可以使用 SVCS_ALERT_EVENT_LOG 来标识查询中的潜在问题,然后按照优化查询性能中的做法来优化数据库设计并重新编写查询。SVCS_ALERT_EVENT_LOG 将记录以下警报:

  • 缺失统计数据

    统计数据缺失。在加载数据或进行大量更改之后运行 ANALYZE 并结合使用 STATUPDATE 和 COPY 操作。有关更多信息,请参阅设计查询的 Amazon Redshift 最佳实践

  • 嵌套循环

    一个嵌套循环通常是一个笛卡尔积。评估您的查询以确保所有参与表均已高效地联接。

  • 选择性非常强的筛选条件

    返回的行与扫描的行的比率小于 0.05。扫描的行是 rows_pre_user_filter 的值,而返回的行是 STL_SCAN 系统表中的行的值。表示查询正在扫描数量极其大的行来确定结果集。这可能是由于排序键缺失或不正确导致的。有关更多信息,请参阅使用排序键

  • 过多的虚影行

    扫描跳过了相对大量的标记为已删除但未抽空的行或已插入但未提交的行。有关更多信息,请参阅对表执行 vacuum 操作

  • 大型分配

    为进行哈希联接或聚合重新分配了超过 1000000 的行。有关更多信息,请参阅使用数据分配样式

  • 大型广播

    为进行哈希联接广播了超过了 1000000 的行。有关更多信息,请参阅使用数据分配样式

  • 顺序执行

    DS_DIST_ALL_INNER 重新分配方式已在查询计划中指明,此方式强制实施序列执行,因为整个内部表已重新分配到单个节点。有关更多信息,请参阅使用数据分配样式

示例查询

以下查询显示了四种查询的警报事件。

SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from svcs_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)