5
我注意到,我第一次在RedShift上运行查询时,需要3-10秒。当我再次运行相同的查询时,即使在WHERE条件中使用不同的参数,它运行速度也很快(0.2秒)。 查询我正在谈论的是在〜3行整数列上的3个整数列上运行。在RedShift中第一次执行查询时的运行时间很长
由于RedShift第一次编译查询,然后重新使用编译后的代码,导致执行时间的巨大差异?
如果是 - 如何始终保持编译查询的缓存温暖?
还有一个问题: 给定queryA和queryB。我们假设queryA首先被编译和执行。 queryB与queryA的相似程度如何,以便执行queryB将使用为queryA编译的代码?
这是绝对正确的。我更深入地挖掘搞清楚究竟是什么原因导致的代码重新编译:https://medium.com/@pingram/redshift-code-compilation-977143576e89 – Phil
你怎么能告诉我们,如果第二次,结果不来了从缓存结果?你真的可以指望第二次尝试同一查询进行性能测试的执行时间吗?另一个链接http://docs.aws.amazon.com/redshift/latest/dg/c-query-performance.html – Faiz
可以测试查询的影响孤立编译通过一个空表尝试不同的查询,消除数据缓存作为一个变量。我发现,查询编译延迟尺度与查询的复杂性:特别是,许多表和联接参与。请参阅:http://wrschneider.github.io/2017/06/02/redshift-compile-latency.html – wrschneider