数据库性能故障排除

本指南涉及数据库或数据仓库,它们作为数据源连接到Metabase

要修复您的Metabase 应用程序数据库的问题,请参阅这些故障排除指南

识别瓶颈

  1. 可选:使用Metabase的使用分析查看您的Metabase使用统计。
  2. 前往您数据库的服务器日志,检查以下内容:
    • 您的表大小在增长,
    • 更多人正在使用Metabase来访问您的数据库,
    • 人们访问您的数据库的频率更高,或者
    • 一个脚本或应用程序(除了Metabase)频繁地访问数据库。
  3. 如果某些表被大量查询,请尝试优化你的表模式
  4. 运行一个Metabase问题,然后直接针对你的数据库运行相同的查询
    • 如果查询花费的时间大致相同,你的数据或使用量可能已经超过了你的数据库容量。你可以给你的数据库增加更多资源,或者考虑升级你的硬件
    • 如果Metabase中的查询比直接针对你的数据库的查询慢,你可能需要调整你的Metabase应用程序的部署。查看Metabase at scale中的选项。
  5. 如果脚本或第三方应用程序同时向数据库发出大量查询
    • 停止你的脚本或应用程序,并清除任何排队的查询
    • 建议:给你的脚本添加超时,安排在非高峰时段运行脚本或应用程序,或者复制你的数据库(并让你的工具指向那里)。

* 可用于专业和企业计划。

重置数据库连接

  1. 转到 设置 > 管理员设置 > 数据库 > 你的数据库。
  2. 点击 保存更改(不进行更改)以重置Metabase与数据库的连接。
  3. 或者:直接从数据库中终止连接。

说明

通过断开和重新连接数据库来“关闭并重新启动”——一个简单的检查,可以为你节省大量时间。

通常,Metabase将在10分钟后尝试关闭到你的数据库的挂起连接,然后在20分钟后再次尝试。但如果你的数据库没有响应,你可能需要从数据库端关闭到Metabase的连接。

清除排队的查询

  1. 停止进程(例如,脚本或一次启动大量查询的具有过多卡片的仪表板)。
  2. 前往你的数据库服务器并停止所有正在进行的查询(来自Metabase)。
  3. 可选:增加数据库连接数

说明

如果有人或某物同时创建100个查询,这股查询洪流将占用Metabase和你的数据库之间的所有可用连接,阻止任何新的查询运行。如果在第一个100个查询仍在进行时,其他人继续运行问题和仪表板,则队列将以比数据库处理速度更快的速度增长。

管理资源密集型查询

  1. 重新安排或禁用Metabase同步和扫描.

说明

默认情况下,Metabase会定期对你的数据库进行同步和扫描查询,以保持你的表更新,获取过滤器下拉菜单的新值,并提出有用的建议。如果你有一个非常大的数据库,你可以选择手动触发这些查询而不是按计划触发。

使用数字、日期或时间戳列的问题

  1. 更新你的数据库模式,以确保列类型正确。
  2. 同步更新后的列,将更改带入Metabase。

说明

如果一个问题使用错误的数据类型存储的数据(最常见的是将数字、日期或时间戳值存储为字符串),Metabase将生成一个查询,要求数据库即时转换值。在模式级别正确地设置列类型将帮助数据库避免这一额外步骤,以便在Metabase中更快地返回结果。

你还卡住了吗?

如果你使用故障排除指南无法解决问题

阅读其他版本Metabase的文档。

想改进这些文档? 提出更改。