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