【发布时间】:2018-09-08 13:43:16
【问题描述】:
我在 Amazon Redshift 中编写了一个非常复杂的查询,其中包含 3-4 个临时表以及子查询。由于查询执行速度很慢,我尝试用另一个查询替换它,它使用派生表而不是临时表。
我只是想问一下,有什么方法可以比较两个查询的“Explain”输出,以便我们可以得出结论哪个查询在性能上更好(两个space 和 时间)。
此外,在 redshift 中用 派生表 替换 临时表 有多大帮助?
【问题讨论】:
-
要比较解释,请执行“解释(分析、成本、时间、缓冲区、详细、格式 json)”,然后您可以使用并排比较工具进行比较,或者做一个眨眼 -比较使用 pev tatiyants.com/postgres-query-plan-visualization
-
派生表与临时表是什么意思?请充分解释这部分,如果可以的话 - 显示你的 sql。
-
@JonScott 我的查询是这样的:“ with patient_set as (select * from .........2-3 joins......), metric_set as (select * from ......... 2-3 连接......),测量为(选择 * 从............ 2-3 连接......)选择 x, y,z from patient_set join on ..... join metric_set on .... join measure on ......... where .........
现在第二个查询是以派生表替换临时表的方式构建的。 -
请更新您的问题以包含您的查询并解释派生表与临时表的含义是什么?
-
@Ben 谢谢!!! Pev 很有帮助。 :)
标签: sql optimization amazon-redshift temp-tables explain