WLM 系统表和视图
WLM 根据内部定义的 WLM 服务类配置查询队列。Amazon Redshift 根据这些服务类以及在 WLM 配置中定义的队列创建多个内部队列。在系统表中,术语队列 和服务类 通常可互换使用。超级用户队列使用服务类 5。用户定义的队列使用服务类 6 及更高的服务类。
您可以使用特定于 WLM 的系统表查看查询、队列和服务类的状态。查询以下系统表并注意以下事项:
-
查看正在跟踪哪些查询,工作负载管理器分配哪些资源。
-
查看查询被分配到哪个队列。
-
查看工作负载管理器当前跟踪的查询的状态。
表名称 | 描述 |
---|---|
STL_WLM_ERROR | 包含 WLM 相关错误事件的日志。 |
STL_WLM_QUERY | 列出 WLM 跟踪的查询。 |
STV_WLM_CLASSIFICATION_CONFIG | 显示 WLM 的当前分类规则。 |
STV_WLM_QUERY_QUEUE_STATE | 记录查询队列的当前状态。 |
STV_WLM_QUERY_STATE | 提供 WLM 跟踪的查询的当前状态快照。 |
STV_WLM_QUERY_TASK_STATE | 包含查询任务的当前状态。 |
STV_WLM_SERVICE_CLASS_CONFIG | 记录 WLM 的服务类配置。 |
STV_WLM_SERVICE_CLASS_STATE | 包含服务类的当前状态。 |
STL_WLM_RULE_ACTION | 记录有关从 WLM 查询监控规则生成的与用户定义的队列关联的操作的详细信息。 |
STV_WLM_QMR_CONFIG | 记录 WLM 查询监控规则 (QMR) 的配置。 |
您使用任务 ID 来跟踪系统表中的查询。下面的示例介绍如何获取最近提交的用户查询的任务 ID:
select task from stl_wlm_query where exec_start_time =(select max(exec_start_time) from stl_wlm_query); task ------ 137 (1 row)
下面的示例介绍当前正在各个服务类(队列)中执行或等待的查询。该查询在跟踪 Amazon Redshift 的整体并发工作负载时很有用:
select * from stv_wlm_query_state order by query; xid |task|query|service_| wlm_start_ | state |queue_ | exec_ | | |class | time | |time | time ----+----+-----+--------+-------------+---------+-------+-------- 2645| 84 | 98 | 3 | 2010-10-... |Returning| 0 | 3438369 2650| 85 | 100 | 3 | 2010-10-... |Waiting | 0 | 1645879 2660| 87 | 101 | 2 | 2010-10-... |Executing| 0 | 916046 2661| 88 | 102 | 1 | 2010-10-... |Executing| 0 | 13291 (4 rows)
WLM 服务类 ID
下表列出了分配到服务类的 ID 的列表。
ID | 服务类 |
---|---|
1–4 | 保留供系统使用。 |
5 | 由超级用户队列使用。 |
6–13 | 由在 WLM 配置中定义的手动 WLM 队列使用。 |
14 | 由短查询加速使用。 |
15 | 预留供 Amazon Redshift 运行的维护活动使用。 |
100–107 | 在 auto_wlm 为 true 时由自动 WLM 队列使用。 |