我在Amazon 中编写了一个非常复杂的查询,它由3-4个临时表和子查询组成,由于执行速度慢,我尝试用另一个查询替换它,它使用派生表而不是临时表。我只想问一问,有没有办法比较这两个查询的"Explain“输出,这样我们就可以得出哪个查询的性能更好的结论( space和time)。
此外,在红移中将临时表替换为派生表有多大帮助?
发布于 2018-04-09 13:37:16
当Redshift生成自己的临时表(在计划中可见)时,您可以通过自己创建临时表来优化查询,指定压缩、添加分发和排序键,以帮助实现表上的联接。
非常慢的查询通常使用nested loop
联接样式。最快的联接类型是merge join
。如果可能,重写查询或修改表以使用merge join
或至少hash join
。详细信息:https://docs.aws.amazon.com/redshift/latest/dg/query-performance-improvement-opportunities.html
更好地理解Redshift查询规划和执行的资源:
https://stackoverflow.com/questions/49558782
复制相似问题