刚刚将平台从 mySQL 迁移到 firebird 后,我发现很难找到一种可接受的方法来捕获从 Java .jar 应用程序传递到数据库服务器 (Firebird) 的 SQL 命令。我需要分析命令以及在执行时间等方面传递的查询的“成本”。
使用 MySQL 可以使用maatkit 工具包,但不幸的是,这似乎不适用于 Firebird。
有没有人对火鸟的 maatkit 有适当且可比较的方法?还是使用 strace 或类似的?
您可以使用 Firebird 跟踪工具及其 API 来生成此信息。有关详细信息,请参阅Firebird 2.5 发行说明中的跟踪和审计服务以及 Firebird 2.5 中的审计和跟踪服务。
您可以配置写入日志文件的服务器端跟踪会话,或使用服务 API 执行用户跟踪会话(取决于您的权限,您只会看到自己的查询或所有内容)。
firebird 安装包括一个用于访问用户跟踪 API (fbtracemgr.exe) 的命令行工具。Jaybird 2.2 包含对用户跟踪 API 的基本访问,但老实说,它还不是真正的用户友好(而且有点脆弱)。有几个(商业)第三方工具可以以更加用户友好的方式访问 Trace API: