寻找AWS Redshift替代Athena EXPLAIN ANALYZE的查询分析方案(无需控制台优先)
Redshift 类似 EXPLAIN ANALYZE 的性能分析方案
Redshift 提供了几种无需依赖控制台的方式来获取查询的实际执行数据,替代 Athena 的 EXPLAIN ANALYZE 功能:
1. 原生 EXPLAIN ANALYZE(Redshift 1.0.32547+ 版本支持)
从 Redshift 1.0.32547 版本开始,官方原生支持 EXPLAIN ANALYZE 语句,直接执行即可返回带实际执行统计的计划:
EXPLAIN ANALYZE SELECT col1, SUM(col2) FROM your_table GROUP BY col1;
执行后会输出执行计划各步骤的实际耗时、扫描/返回行数、数据传输量等真实执行指标。
2. 查询系统表获取历史执行详情
如果你的 Redshift 版本较低,不支持原生 EXPLAIN ANALYZE,可以通过查询系统表获取已执行查询的实际执行数据:
- 先执行目标查询,通过以下语句查找对应
query_id:SELECT query_id FROM stl_query WHERE query_text LIKE '%你的查询片段%'; - 再通过系统表获取详细统计:
stl_query:查询基本信息、总耗时stl_scan:表扫描的行数、数据量、耗时stl_sort:排序操作的执行统计stl_join:关联操作的执行统计svl_query_summary:查询的资源使用、阶段耗时汇总
示例查询:
SELECT q.query_id, q.starttime, q.endtime, s.rows_scanned, s.rows_returned, s.elapsed_time FROM stl_query q JOIN stl_scan s ON q.query_id = s.query_id WHERE q.query_id = '你的查询ID';
3. EXPLAIN VERBOSE 辅助分析
EXPLAIN VERBOSE 虽不提供实际执行数据,但会输出更详细的执行计划细节,结合系统表的历史执行数据,可更精准定位性能瓶颈。
内容的提问来源于stack exchange,提问作者Alonme
相关产品推荐
相关产品推荐

