繁体   English   中英

按总运行时间,执行时间,等待/排队时间列出Redshift中的热门查询?

[英]List top queries by total runtime, execution time, wait/queue time in Redshift?

我知道亚马逊已经为Redshift提供了各种管理脚本,例如:

https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminScripts/top_queries.sql

它按运行时列出了​​最热门的查询,我也发现了类似的内容:

https://chartio.com/learn/amazon-redshift/identifying-slow-queries-in-redshift/

但是我想知道是否有一个查询与上述查询类似,但除了执行时间外还显示队列/等待时间?

从这篇文章:

如何通过查询获得redshift中查询的总运行时间?

我收集到stl_query表包括执行时间+等待时间,但是stl_wlm_query包括total_exec_time,这只是执行时间。

更新:我有以下内容可以满足我的要求,但似乎只返回上个月左右的数据,对我如何获得旧数据有任何想法吗?

    SELECT
w.userid,
w.query,
w.service_class_start_time AS "Day",
w.total_queue_time / 60000000 AS "Total Queue Time Minutes",
w.total_exec_time / 60000000 AS "Total Exec Time Minutes",
w.total_queue_time / 60000000 + w.total_exec_time / 60000000 AS "Total Time  Minutes"
FROM
stl_wlm_query w
ORDER BY
6 DESC

该查询正在使用stl_wlm_query表。

用于日志记录的STL表-Amazon Redshift

为了管理磁盘空间,STL日志表仅保留大约两到五天的日志历史记录 ,具体取决于日志使用情况和可用磁盘空间。 如果要保留日志数据,则需要定期将其复制到其他表或将其卸载到Amazon S3。

下面的查询将按执行时间列出最热门的查询,但正如John上面提到的,只会返回两到五天的日志历史记录。

SELECT
w.userid,
w.query,
w.service_class_start_time AS "Day",
w.total_queue_time / 60000000 AS "Total Queue Time Minutes",
w.total_exec_time / 60000000 AS "Total Exec Time Minutes",
w.total_queue_time / 60000000 + w.total_exec_time / 60000000 AS "Total Time  Minutes"
FROM
stl_wlm_query w
ORDER BY
6 DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM