【问题标题】:Long runtime when query is executed the first time in RedShift在 RedShift 中第一次执行查询时运行时间长
【发布时间】:2013-11-21 07:36:03
【问题描述】:

我注意到第一次在 RedShift 上运行查询需要 3-10 秒。当我再次运行相同的查询时,即使在 WHERE 条件下使用不同的参数,它也运行得很快(0.2 秒)。 我所说的查询在 3 个整数列上运行约 1M 行的表。

这种巨大的执行时间差异是否是因为 RedShift 在第一次运行时编译查询,然后重新使用编译后的代码?

如果是 - 如何始终保持编译查询的缓存温暖?

还有一个问题: 给定查询A和查询B。 假设 queryA 首先被编译和执行。 queryB 应该与 queryA 有多相似,这样 queryB 的执行才会使用为 queryA 编译的代码?

【问题讨论】:

    标签: amazon-redshift paraccel


    【解决方案1】:

    第一个问题的答案是肯定的。 Amazon Redshift 为查询编译代码并将其缓存。编译后的代码在集群中的会话之间共享,因此在不同会话中具有不同参数的相同查询将运行得更快,因为没有开销。

    他们还建议使用第二次执行查询的结果作为基准。

    以下链接中有此问题的答案和详细信息。 http://docs.aws.amazon.com/redshift/latest/dg/c-compiled-code.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多