数据库性能故障排除
本指南处理连接到 Metabase作为数据源的数据库或数据仓库。
要解决 Metabase 应用程序数据库的问题,请查看这些故障排除指南
识别瓶颈
- 可选:使用 Metabase 的使用情况分析来查看您的 Metabase 使用统计数据。*
- 转到数据库的服务器日志,并检查是否
- 您的表的大小正在增长,
- 越来越多的人使用 Metabase 访问您的数据库,
- 人们更频繁地访问您的数据库,或者
- 脚本或应用程序(Metabase 以外)频繁访问数据库。
- 如果经常查询特定表,请尝试优化您的表架构。
- 从 Metabase 运行一个问题,然后直接针对您的数据库运行相同的查询。
- 如果查询花费的时间大致相同,则您的数据或使用量可能超出了数据库的容量。您可以为数据库提供更多资源,或者考虑升级您的硬件。
- 如果 Metabase 中的查询比直接针对数据库的查询花费的时间更长,则您可能需要调整 Metabase 应用程序的部署。请查看大规模 Metabase中的一些选项。
- 如果脚本或第三方应用程序一次向您的数据库发送大量查询
- 停止您的脚本或应用程序,并清除任何排队的查询。
- 推荐:为您的脚本添加超时,安排脚本或应用程序在非工作时间运行,或复制您的数据库(并将您的工具指向那里)。
* 适用于 Pro 和 Enterprise 计划。
重置数据库连接
- 转到设置 > 管理设置 > 数据库 > 您的数据库。
- 单击保存更改(不进行更改)以重置 Metabase 与数据库的连接。
- 或者:直接从您的数据库终止连接。
说明
通过断开并重新连接数据库来“关闭再打开” — 这是一种简单的健全性检查,可以为您节省大量时间。
通常,Metabase 会尝试在 10 分钟后关闭与数据库的挂起连接,然后在 20 分钟后再次尝试。但是,如果您的数据库没有响应,您可能需要从数据库端关闭与 Metabase 的连接。
清除排队的查询
说明
如果某人或某物同时创建 100 个查询,则此查询冲击将占用 Metabase 和数据库之间的所有可用连接,从而阻止任何新查询运行。如果在前 100 个查询仍在进行中时,其他人继续运行问题和仪表盘,则队列的增长速度将快于数据库的跟进速度。
管理资源密集型查询
说明
默认情况下,Metabase 会定期对您的数据库进行同步和扫描查询,以使您的表保持最新,获取筛选器下拉列表的新鲜值,并提供有用的建议。如果您有一个非常大的数据库,您可以选择手动触发这些查询,而不是按计划触发。
使用数字、日期或时间戳列的问题
- 更新您的数据库架构,以使列类型正确。
- 同步更新的列,以将更改引入 Metabase。
说明
如果某个问题使用数据库中存储为错误数据类型的数据(最常见的情况是数字、日期或时间戳值存储为字符串),Metabase 将生成一个查询,要求您的数据库动态转换值。在架构级别正确键入列将帮助您的数据库避免执行额外的步骤,从而在 Metabase 中更快地返回结果。
相关问题
您仍然遇到问题吗?
如果您无法使用故障排除指南解决您的问题
- 搜索或咨询 Metabase 社区。
- 搜索已知错误或限制。
阅读其他Metabase 版本的文档。