如何在 Redshift Query 中禁用使用缓存结果?

Posted

技术标签:

【中文标题】如何在 Redshift Query 中禁用使用缓存结果?【英文标题】:How to disable using cache results in Redshift Query? 【发布时间】:2019-02-21 10:47:49 【问题描述】:

我有兴趣在 Redshift 中对我的查询进行性能测试。

我想禁止查询使用之前查询的任何缓存结果。换句话说,我希望查询从头开始运行。是否可以仅在执行我的查询时禁用缓存结果?

我不想为整个数据库/所有查询禁用缓存结果。

【问题讨论】:

我相信您知道这一点,但您还需要确保您了解编译时间和内存使用情况。即使使用“SET enable_result_cache_for_session TO OFF;”在第一次执行时,您的性能仍然会比后续执行时慢得多。在正常情况下(除非您的 sql 是生成的并且是高度动态的),您应该排除第一次运行来进行基准测试。 【参考方案1】:
SET enable_result_cache_for_session TO OFF;

来自enable_result_cache_for_session - Amazon Redshift:

指定是否使用查询结果缓存。如果enable_result_cache_for_sessionon,Amazon Redshift 会在提交查询时检查查询结果的有效缓存副本。如果在结果缓存中找到匹配项,Amazon Redshift 将使用缓存的结果并且不执行查询。如果 enable_result_cache_for_sessionoff,Amazon Redshift 会忽略结果缓存并在提交时执行所有查询。

【讨论】:

以上是关于如何在 Redshift Query 中禁用使用缓存结果?的主要内容,如果未能解决你的问题,请参考以下文章