【问题标题】:disabling query cache in Redshift在 Redshift 中禁用查询缓存
【发布时间】:2019-12-04 14:27:30
【问题描述】:

我在禁用 Redshift 中的查询缓存时遇到了困难,我希望有人知道如何帮助我。

我知道要禁用查询缓存,我需要“SET enable_result_cache_for_session TO OFF”。

设置此命令后:

查询运行时间与设置此参数之前一样。

查看 SVL_QLOG 系统表,“source_query”字段仍在接收值。 (根据文档,当缓存打开时,您可以看到查询结果来自的源查询编号,而当缓存关闭时,该字段应为 NULL)。

查询没有执行描述(我认为是因为它们使用缓存,因此没有执行计划。不确定,只是假设)。

有没有人遇到过这个问题,可以帮帮我吗?

PS。根据文档,更改缓存参数对“会话”有效,我仍然没有弄清楚 Redshift 认为什么是会话。重启集群?关闭查询编辑器?什么?

谢谢你的帮助!!!

【问题讨论】:

    标签: amazon-web-services caching amazon-redshift


    【解决方案1】:

    redshift 中有两种类型的缓存。一种是查询缓存,另一种是结果缓存。查询缓存意味着查询执行模式,而结果缓存实际上是执行查询的保存结果。 此命令 SET enable_result_cache_for_session TO OFF 将关闭结果缓存而不是查询缓存。

    应在关闭结果缓存而不是查询缓存时考虑 Redshift 查询性能。当第一次执行查询时,Redshift 保存了查询执行模式,该模式用于后续执行相同的查询。如果执行相同参数的相同查询,它还会保存查询结果并从缓存中提供结果。

    要获得查询的实际性能,您需要关闭结果缓存而不是查询缓存。 Redshift 推荐第二次查询执行性能。

    Redshift 在内部管理查询缓存并通过其自己的算法使执行模式过时。

    【讨论】:

    • “要获得查询的实际性能,您需要关闭结果缓存而不是查询缓存” - 但我正在关闭结果缓存,正如你所说的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2011-03-07
    • 1970-01-01
    • 2010-12-25
    • 2013-04-09
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多