sql - BigQuery - 缓存可能不起作用。我该如何诊断?
问题描述
我有一个 BigQuery 查询,它是通过用 Java 编写的 Google Cloud Endpoints API 触发的,并且我已将 queryJobConfiguration 配置如下,以使用 BigQuery 查询缓存:
// create new big query configuration
BqEntity entity = new BqEntity();
entity.queryJobConfiguration = QueryJobConfiguration
.newBuilder(query)
.setUseLegacySql(false)
.setUseQueryCache(true)
.build();
缓存似乎不起作用,我需要明确确认是否确实如此。当我通过 Web 前端重新加载数据来重新发出查询时,这会导致与上次运行时相同的查询,我没有看到性能有任何改进,而且性能问题似乎在后面-结束(这可能是多种因素 - 我想先检查 BigQuery 缓存是否存在问题)。
我的问题是 - 如何检查查询是否使用了缓存?我在 Google Cloud Console 中没有看到任何可以让我查看已运行的查询以及是否使用缓存的地方(我正在寻找 SQL Server Profiler 提供的东西的类型,但在谷歌云控制台,谷歌搜索后没有找到任何东西)。
解决方案
缓存可能不起作用。我该如何诊断?
我需要明确地确认这是否真的如此
有两种常用方法可以确定 BigQuery 是否使用缓存返回结果:
如果您使用 GCP Console 或经典 BigQuery 网页界面,则结果字符串不包含有关已处理字节数的信息,并显示“缓存”一词。
UI 中的缓存指示器
如果您使用BigQuery API,则查询结果中的cacheHit属性设置为 true。
推荐阅读
- amazon-web-services - 使用 Terraform 部署 lambda,其中可以从 2 个 ECR 中的 1 个检索图像
- r - 如何在行内分隔不同大小的多字符值?
- data-structures - DFS 的计算复杂度
- c++ - 我的登录功能仅在我在同一运行中注册时才有效
- javascript - HTML Post Form 将数据分组到字典中
- c++ - QT 用 SIGNAL 和 SLOT 改变 GUI
- python - Python//字典和列表的新功能
- r - 使用 ggplot 标记生存情节线
- linux - 有没有办法在离线的红帽机器上安装“make”命令?
- visual-studio - 查找损坏的 Visual Studio 用户设置