此页面为机器翻译。请阅读英文原文。 English

IBSurgeon Free Tools 是一套面向 Firebird 和 InterBase 管理员的三个 Windows 实用工具:测量查询响应时间、检查数据库文件的填充情况,以及读取冗长的服务器日志。该工具包免费,并且也包含在 HQbird Standard 中。

工具包内容

Response Checker

按计划运行真实的 SELECT 查询,并绘制平均和峰值响应时间图表,以便您了解数据库何时变慢。

DBInfo

直接读取数据库文件(无需服务器),显示数据、索引、BLOB 和其他页面类型占用的空间,并标记损坏的页面。

Log Viewer

打开冗长的 firebird.log / interbase.log 文件,在条目之间跳转,并发现峰值和一致性检查错误。

Response Checker

最终用户谈论的是“慢”和“够用”--这就是响应时间。使用来自您真实应用程序的重型 SELECT 查询,针对生产环境或接近的测试副本进行测量。没有该查询的抽象基准测试无法告诉您您的用户何时在等待。

Response Checker 按时间间隔运行该查询,记录每次的持续时间,并绘制时间线,以便您看到缓慢的时段。将这些时段与 HQbird 统计信息(IBAnalyst、事务监控、跟踪)配对,以找到原因。如需全面服务,请参阅优化服务

  1. 启动 IBSurgeon → FreeTools → IBSurgeon Response Checker
  2. 粘贴一个真实世界的 SELECT 查询(不是 INSERT/UPDATE/DELETE)。
  3. 设置时间间隔(默认 10 秒)以及要保留的数据点数(默认 17,280 ≈ 48 小时)。
  4. 启用 每次检查后断开连接,以便每次运行使用新连接,更接近最终用户的行为。
  5. 点击 开始检查 并选择数据库。观察图表中的缓慢时段。

结果仅在当前会话中有效:停止检查 然后再次 开始检查 将清除之前的运行。

IBSurgeon Response Checker 带有 SELECT 查询和检查间隔
查询、时间间隔和断开连接选项。
Response Checker 随时间变化的 Firebird 查询响应时间图表
响应时间时间线 - 缓慢时段一目了然。

DBInfo

DBInfo 直接打开数据库文件(只读,无需客户端库),显示页面大小、文件大小、ODS 格式,以及数据、索引、BLOB 和其他页面的混合情况。条形图上的红色表示坏页面,而不是“有趣的”BLOB 百分比--其他颜色仅用于视觉区分。

IBSurgeon DBInfo 显示 Firebird 或 InterBase 数据库中的页面类型百分比
页面类型混合和大小一目了然。
支持哪些版本?
InterBase 4.0 到当前 InterBase 版本,以及 Firebird 1.0 及更高版本。它直接读取文件;服务器无需运行。
远程或 Linux 呢?
仅限 Windows Win32。文件必须可在本地访问或通过网络共享访问(Wine 也可能可行)。它无法通过 Firebird 协议与远程服务器通信。
服务器运行时可以使用吗?
可以,但全文件扫描会占用磁盘 I/O--避免在高峰期使用。如果文件正在被写入,DBInfo 可能会报告虚假的损坏警告。
它能写入或损坏文件吗?
不能。文件以只读方式打开。
发现坏页面怎么办?
运行 gfixFirstAID Diagnostician,并将日志发送至 [email protected]。我们可以通过恢复服务修复它,或者您可以购买 FirstAID 许可证。
每个表或索引的空间呢?
使用 IBAnalyst(在 HQbird Standard 中)获取每个关系的统计信息和调优建议。
“不使用 Windows 文件缓存”?
默认开启。缓存数 GB 的扫描可能会将其他进程推入虚拟内存。跳过缓存可防止大型(1-100 GB)扫描拖慢整个机器。

Log Viewer

firebird.log / interbase.log 通常无人阅读,但它们却能解释锁定、I/O 错误和引擎缺陷。Log Viewer 是内部开发的,用于浏览非常长的日志;2.0 版本附带面向社区的条目描述。

从 Firebird 文件夹(通常是 C:\Program Files\Firebird\Firebird_n_n\)打开日志。观察每天的条目数量--峰值是线索--然后查看异常行,尤其是 internal gds consistency checkinternal Firebird consistency check

IBSurgeon Log Viewer 显示带有描述的 Firebird 日志条目
浏览长日志并阅读已知条目的描述。

如果发现异常,请发送邮件至 [email protected] 并附上日志。