首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何清除雪花中的最后运行查询(Cache)

如何清除雪花中的最后运行查询(Cache)
EN

Stack Overflow用户
提问于 2022-01-20 21:08:34
回答 2查看 3.8K关注 0票数 4

我想测试查询性能。示例:

从vw_testrole中选择*。

vw_testrole角色-有很多连接。由于数据是缓存的,所以返回的时间更短。我希望看到查询计划,以及如何查看它或清除缓存,或者看到执行所需的原始时间。

谢了,习

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-21 09:34:09

一些额外的信息,因为您计划做一些“性能测试”,以确定预期的执行时间的查询。

USE_CACHED_RESULT参数禁止使用缓存的查询结果。它不会删除现有的缓存。如果禁用它,您可以看到查询计划(如您所愿),并且每次都将执行查询,而不检查结果是否已经可用(因为以前运行了相同的查询)。但你应该知道雪花有多个缓存。

  1. 仓库缓存:正如Simeon在评论中提到的,雪花缓存最近访问了仓库节点本地磁盘中的远程数据(共享存储)。清洗起来可不容易。即使暂停仓库也不能删除它。

  1. 元数据缓存-如果由于访问元数据(用于计算统计数据等),查询访问非常大的表和编译时间很长,那么这个缓存可能非常重要。当您重新运行查询时,它可能会从元数据缓存中读取,从而大大减少编译时间。

  1. 结果缓存:这是您要禁用的。

而且,运行以下命令不会禁用它:

代码语言:javascript
复制
ALTER SESSION UNSET USE_CACHED_RESULT=FALSE;
ALTER SESSION UNSET USE_CACHED_RESULT; 

第一个会给你带来一个错误。最后一个错误不会给出一个错误,但是默认值是真,所以实际上,它启用了它。正确的命令是:

代码语言:javascript
复制
ALTER SESSION SET USE_CACHED_RESULT=FALSE;
票数 5
EN

Stack Overflow用户

发布于 2022-01-20 21:33:03

可以通过设置ALTER SESSION UNSET USE_CACHED_RESULT;清除缓存。

要获得上一次查询Id的计划,可以在stmt下面使用:

代码语言:javascript
复制
select system$explain_plan_json(last_query_id()) as explain_plan;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70793413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档