【发布时间】:2013-11-21 07:36:03
【问题描述】:
我注意到第一次在 RedShift 上运行查询需要 3-10 秒。当我再次运行相同的查询时,即使在 WHERE 条件下使用不同的参数,它也运行得很快(0.2 秒)。 我所说的查询在 3 个整数列上运行约 1M 行的表。
这种巨大的执行时间差异是否是因为 RedShift 在第一次运行时编译查询,然后重新使用编译后的代码?
如果是 - 如何始终保持编译查询的缓存温暖?
还有一个问题: 给定查询A和查询B。 假设 queryA 首先被编译和执行。 queryB 应该与 queryA 有多相似,这样 queryB 的执行才会使用为 queryA 编译的代码?
【问题讨论】: