查询缓存Amazon Redshift

时间:2018-11-25 06:13:42

标签: amazon-redshift

我在几天的间隔内运行了相同的查询,并且在Amazon Redshift上执行的第一次执行的执行时间有所不同。 两次都将会话的缓存设置为FALSE。

两个查询的后续查询都更快(以毫秒为单位)。我检查了查询缓存的使用情况,没有使用查询缓存。

问题: 当不使用查询缓存时,为什么随后的查询运行更快?如何运行? 为什么第一次执行相同查询的时间不同?

P.S。我使用了相同的排序,分布和列编码。附上我执行时间基准测试的图片。

benchmark results

1 个答案:

答案 0 :(得分:2)

Redshift中的查询(技术查询段)在首次执行时进行编译。随后的执行(即使使用不同的谓词)通常不需要编译,并且跳过该步骤将大大加快运行速度。请参阅本文档中的“代码编译”部分:Factors Affecting Query Performance

此外,在选择Interleaved排序键之前,请先查看我们的表设计指南中的文档"Compound and Interleaved Sort Keys"。仅在特定情况下建议使用这种类型的密钥,并且不应将其用作默认选择。