我注意到我第一次在 RedShift 上运行查询需要 3-10 秒。当我再次运行相同的查询时,即使在 WHERE 条件下使用不同的参数,它也运行得很快(0.2 秒)。查询我说的是在一个约 1M 行的表上运行,在 3 个整数列上。
执行时间的巨大差异是否是由于 RedShift 在第一次运行时编译查询,然后重新使用已编译的代码这一事实造成的?
如果是 - 如何始终保持编译查询的缓存温暖?
还有一个问题:给定 queryA 和 queryB。假设 queryA 首先被编译和执行。queryB 应该与 queryA 有多相似,这样 queryB 的执行将使用为 queryA 编译的代码?