如何在 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 中禁用使用缓存结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止Redshift记录查询

如何捕获插入到包含标识列的 Redshift 表中的行数?

如何使用带有 IAM 凭证的 psql 客户端访问 Amazon AWS Redshift

vu-query: 目前vue3最好用的请求缓存库

Redshift SVV_TABLE_INFO 中缺少的表 id 应该存在,查看 STL_QUERY 和 STL_SCAN

如何保留超过 5 天的查询日志?