测试应用程序的查询(摘自《迁移指南至Firebird 3》)
本文摘自 Carlos Cantu 所著的《迁移指南至 Firebird 3》一书。
从一个 Firebird 版本切换到另一个版本可能会给现有查询带来问题,从性能不佳到完全失败,尤其是当查询使用了新保留字或之前被接受的错误 SQL 时。
应用程序通常包含数百个查询,从屏幕信息浏览到报表生成,再到数据录入和验证。可能还有外部脚本和查询生成器会动态生成 SQL 查询,因此即使对应用程序源代码进行全面检查,也无法检查所有 SQL 查询的组合。
来自 IBSurgeon 的 HQbird FBScanner 是一款工具,可以帮助您检查现有应用程序是否能在 Firebird 3 上运行,并找出迁移应用程序中 SQL 查询是否存在错误或缓慢问题。FBScanner 是 HQbird Standard 的一部分,该工具包用于监控和优化 Firebird 服务器。它允许您在当前版本的 Firebird 上记录查询,并在新的 Firebird 服务器上测试这些查询。
FBScanner 充当客户端与服务器之间的代理,记录所有通信:连接、事务、SQL 语句文本、获取次数、SQL 计划、错误以及查询的准备和执行时间。
您可以在使用当前版本的 Firebird 时安装 FBScanner;配置它以监控通信并将查询存储在日志数据库中。最常见的配置是将 FBScanner 安装在同一台服务器上,端口为 3050,并将 Firebird 端口更改为其他值(例如 3053):在这种情况下,现有 Firebird 应用程序将继续与服务器上的数据库正常工作,无需更改其连接字符串:

此外,也可以将 FBScanner 安装在第三方计算机上,并仅将部分客户端路由通过 FBScanner,以捕获这些客户端的通信。
经过几天的监控,日志数据库中将包含应用程序中使用的大量查询。理想情况下,它应覆盖数据库中的所有 SQL 活动,并包含时间和执行详情:
FBScanner 允许您执行已记录的查询。利用日志数据库,您可以设置一个测试用的 Firebird 3 服务器,将原始数据库恢复到该服务器上,并使用 FBScanner 日志分析器运行记录的查询。
FBScanner 在网格中显示结果,包括性能信息,因此您可以比较当前执行时间与旧服务器上的执行时间,并比较旧 PLAN 与新 PLAN。
网格中的信息可以导出到 Excel 电子表格中。
在比较查询执行时间时,请记住外部因素会影响结果。一个考虑因素是操作系统或 Firebird 的缓存是“冷”还是“热”。显然,当大部分信息已被缓存时执行的查询比从磁盘检索数据时更快。
您可以在此处购买完整版的《迁移指南至 Firebird 3》。
HQbird Standard(包含 FBScanner)可在此处购买。对于已购买《迁移指南至 Firebird 3》的用户,我们提供 HQbird Standard 10% 的折扣–请联系我们获取折扣优惠码。
IBSurgeon 还提供全面的“Firebird 迁移服务”–我们可以帮助将包含复杂存储过程、查询和其他逻辑的数据库从早期 Firebird 版本(1.0、2.0、2.1、2.5)迁移到现代版本(2.5、3.0,甚至 4.0)。