如何在 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_session
是on
,Amazon Redshift 会在提交查询时检查查询结果的有效缓存副本。如果在结果缓存中找到匹配项,Amazon Redshift 将使用缓存的结果并且不执行查询。如果enable_result_cache_for_session
是off
,Amazon Redshift 会忽略结果缓存并在提交时执行所有查询。
【讨论】:
以上是关于如何在 Redshift Query 中禁用使用缓存结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用带有 IAM 凭证的 psql 客户端访问 Amazon AWS Redshift
Redshift SVV_TABLE_INFO 中缺少的表 id 应该存在,查看 STL_QUERY 和 STL_SCAN