我正在使用紅移對一些查詢進行基準測試,以便我可以對我在表格中進行的更改(如添加編碼和運行真空)進行智能說明。我可以使用LIKE子句查詢stl_query
表以查找我感興趣的查詢,所以我有查詢ID,但像stv_query_summary
這樣的表/視圖太精細,我不確定如何生成我需要的摘要!如何通過查詢獲取紅移查詢的總運行時間?
gui儀表板顯示我感興趣的指標,但格式很難存儲以供以後分析/比較(換句話說,我想避免截圖)。有沒有一種好的方法來重新生成SQL選擇的視圖?
我正在使用紅移對一些查詢進行基準測試,以便我可以對我在表格中進行的更改(如添加編碼和運行真空)進行智能說明。我可以使用LIKE子句查詢stl_query
表以查找我感興趣的查詢,所以我有查詢ID,但像stv_query_summary
這樣的表/視圖太精細,我不確定如何生成我需要的摘要!如何通過查詢獲取紅移查詢的總運行時間?
gui儀表板顯示我感興趣的指標,但格式很難存儲以供以後分析/比較(換句話說,我想避免截圖)。有沒有一種好的方法來重新生成SQL選擇的視圖?
有在https://github.com/awslabs/amazon-redshift-utils
一些usefuls工具/腳本這裏是剝離出來給你以毫秒爲單位查詢運行時間表示腳本之一。與過濾器玩,排序等,以顯示你正在尋找的結果:
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
要添加到亞歷克斯的答案,我想評論說stl_query表有不便之處,如果查詢是在隊列運行之前那麼隊列時間將包含在運行時間中,因此運行時不會是查詢性能的非常好的指標。
要理解查詢的實際運行時間,請在stl_wlm_query上檢查total_exec_time。
select total_exec_time
from stl_wlm_query
where query='query_id'
AWS Admin/Redshift部分以GUI格式共享大量類似的信息。 – kadalamittai
對 - 我想避免使用gui,因爲我想將這些結果存儲在其他地方以供進一步分析。我可以複製和/或採取截圖,但這並不理想。 –
是有道理的。幾乎所有繪製在aws登錄紅移控制檯中的數據都可以以表格的形式提供。 SVV,STL等,如果你正在尋找列/行數據你可以使用它。 – kadalamittai