Amazon redshift 如何通过查询以红移方式获取查询的总运行时间?

Amazon redshift 如何通过查询以红移方式获取查询的总运行时间?,amazon-redshift,data-warehouse,Amazon Redshift,Data Warehouse,我正在用redshift对一些查询进行基准测试,这样我就可以对我对表所做的更改说一些明智的话,比如添加编码和运行真空。我可以使用LIKE子句查询表以查找我感兴趣的查询,因此我有查询id,但LIKE表/视图过于精细,我不确定如何生成所需的摘要 gui仪表板显示了我感兴趣的指标,但格式很难存储以供以后分析/比较——换句话说,我希望避免截图。是否有一种使用sql选择重建该视图的好方法?中有一些有用的工具/脚本 下面是其中一个剥离出来的脚本,以毫秒为单位提供查询运行时间。使用过滤器、排序等显示您要查找的

我正在用redshift对一些查询进行基准测试,这样我就可以对我对表所做的更改说一些明智的话,比如添加编码和运行真空。我可以使用LIKE子句查询表以查找我感兴趣的查询,因此我有查询id,但LIKE表/视图过于精细,我不确定如何生成所需的摘要


gui仪表板显示了我感兴趣的指标,但格式很难存储以供以后分析/比较——换句话说,我希望避免截图。是否有一种使用sql选择重建该视图的好方法?

中有一些有用的工具/脚本

下面是其中一个剥离出来的脚本,以毫秒为单位提供查询运行时间。使用过滤器、排序等显示您要查找的结果:

select userid, label, stl_query.query, trim(database) as database, trim(querytxt) as qrytext, starttime, endtime, datediff(milliseconds, starttime,endtime)::numeric(12,2) as run_milliseconds, 
       aborted, decode(alrt.event,'Very selective query filter','Filter','Scanned a large number of deleted rows','Deleted','Nested Loop Join in the query plan','Nested Loop','Distributed a large number of rows across the network','Distributed','Broadcasted a large number of rows across the network','Broadcast','Missing query planner statistics','Stats',alrt.event) as event
from stl_query 
left outer join ( select query, trim(split_part(event,':',1)) as event from STL_ALERT_EVENT_LOG group by query, trim(split_part(event,':',1)) ) as alrt on alrt.query = stl_query.query
where userid <> 1 
-- and (querytxt like 'SELECT%' or querytxt like 'select%' ) 
-- and database = ''
order by starttime desc
limit 100

为了补充Alex answer,我想指出,stl_查询表带来的不便是,如果查询在运行时之前处于队列中,那么队列时间将包含在运行时中,因此运行时将不是查询性能的很好指标

要了解查询的实际运行时间,请查看stl\U wlm\U查询中的总执行时间

select total_exec_time
from stl_wlm_query
where query='query_id'

AWS Admin/Redshift部分以GUI格式共享大量类似的信息。右-我不想使用GUI,因为我想将这些结果存储在其他地方以供进一步分析。我可以复制粘贴和/或截图,但这并不理想。有道理。aws登录红移控制台中绘制的几乎所有数据都以表格的形式提供。SVV、STL等。如果您正在查找列/行数据,您可以使用它。如果您可以使用psql从命令行运行查询,则可以使用\timing切换每次查询运行的定时输出。