DBeaver 数据比较实战:库对不上、库变慢,三步定位差异
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
生产库和测试库对账,差了 37 行;接口响应从 200ms 爬到 2s——这类现场,靠人肉翻表翻到深夜也翻不出结论。DBeaver 的数据比较工具把这事拆成三件事:结构比较、数据比较、仪表盘读数,一个界面里全做完。
库对不上时,先打开 DBeaver 做数据比较
先连上两边库(数据库导航器里各建一个连接),剩下的操作都在界面里点出来。
结构比较最短路径:从右键菜单出发
📍对象级:右键就能进
- 在数据库导航器里选中要比对的表(或 schema、存储过程);
- 再按住 Ctrl(macOS 是 ⌘)点选第二个对象——支持跨连接,这正是比较工具最有用的地方;
- 右键 → 比较,比较向导弹出,点比较,报告直接列出新增、缺失、不一致的属性;
- 勾选"仅显示差异",噪音立刻消失。
两个提示:系统对象默认跳过,别被视图和系统函数刷屏;想省事就勾"仅比较结构",忽略属性值这类开销大的项。
数据比较看哪一列:差异结果怎么读
📍内容级:把"哪里不一样"摆到眼前
- 选中两张表进数据比较,先定比较条件:主键或唯一键字段是锚点,漏了它结果就没有意义;
- 结果按行高亮,多出来的行、缺掉的行、值不一致的单元格,三种颜色各归各;
- 勾"仅显示差异",直接跳到大差异行上,别从头翻;
- 报告支持导出,发给对账的另一方时附上它,比截图靠谱。
仪表盘读数:连接数与查询耗时先看什么
📊连接数:分活跃和空闲
- 活跃连接数持续贴顶,多半是查询跑不完,先去查慢查询;
- 空闲连接数高企,怀疑连接池没回收,回应用侧代码里核对;
- 只看总数没意义,拆成两条线看才有判断依据。
📊查询执行时间:按耗时排序抓长尾
- 先看执行时间排最前的几条 SQL,是"一直慢"还是"突然慢";
- 突然慢的,对照时间点回看变更——是不是刚发布的同步任务把库拖住了。
差异加指标:一个同步延迟的定位过程
一次真实感的小实战:订单表对账差异 37 行。
- 结构比较:两边表结构一致,排除字段类型差异;
- 数据比较:差异行集中在同一同步时间窗口——像是"没追上",不是"改错了";
- 打开仪表盘:该时段活跃连接里挂着大批未完成的更新会话,最慢的一条是同步作业里的全表扫描;
- 结论:同步作业执行计划劣化导致同步延迟。给它加索引、限制扫描范围,下一轮对账归零。
单看数据比较,你只会看到"有差异";加上连接数和耗时两条线,才能回答"差异为什么产生"。
把这套流程记下来
- 比较前先确认对象类型一致,异构对象比不出有效结论;
- 数据比较必须指定主键或唯一键作为锚点,否则行对不上;
- 连接数拆成活跃、空闲两条线读,总数会骗人;
- 差异行的时间分布,是反查慢查询窗口最快的线索。
想继续深挖,比较向导实现在 plugins/org.jkiss.dbeaver.cmp.simple/,仪表盘模块在 plugins/org.jkiss.dbeaver.ui.dashboard/。
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考