Valentin Despa Asked: 2012-12-07 02:21:02 +0800 CST2012-12-07 02:21:02 +0800 CST 2012-12-07 02:21:02 +0800 CST 火鸟监控表 772 我正在使用 Firebird 2.1.1 数据库,并开始阅读有关监控表的信息。 我试图以某种方式实时查看每个客户端在数据库中执行的查询。 我看了一下MON$STATEMENTS表格,但它没有提供太多信息。我本来希望表格中有更多内容。 我是在找错地方还是我不了解 Firebird 监控表的用途/用途? firebird 1 个回答 Voted Best Answer Mark Rotteveel 2013-02-01T11:15:35+08:002013-02-01T11:15:35+08:00 使用监控表时,您需要了解许多事项: 监控表(如MON$STATEMENTS)为您提供运行查询时活动或准备好的语句的列表。 查询结果保持稳定,直到事务提交!这意味着重复执行查询而不提交不会产生新信息。 只有SYSDBA,数据库所有者或具有角色的用户RDB$ADMIN可以看到所有信息,其他用户只能看到有关自己连接的信息。 您的 Firebird 安装包含有关表格的基本文档 doc/README.monitoring_tables.txt 现在至于您的屏幕截图:所有语句都来自同一个连接(您自己的)MON$ATTACHMENT_ID = 1521:。目前只有一条语句处于活动状态(MON$STATE = 1)并参与事务MON$TRANSACTION_ID = 90964,并于 2012 年 12 月 6 日 10:08 开始(MON$TIMESTAMP),其余的处于非活动状态(MON$STATE = 0),因此没有事务 ID 和时间戳。第一条语句也是当前唯一具有实际查询 ( MON$SQL_TEXT) 的语句,即在屏幕截图中实际产生结果的查询。在 Firebird 中,语句与使用该语句执行的实际查询分开分配。 这并不多,但是如果您加入了MON$RECORD_STATS,MON$IO_STATS或者MON$MEMORY_USAGE基于MON$STAT_ID您将收到有关查询的统计信息(即读取次数、记录更新、读取或写入的页面数、内存使用)。监控表显示特定时刻的信息,如果查询在您执行时已经完成,您将不会获得任何信息(我不是 100% 确定,但它可能会一直可用,直到下一次执行声明,或直到声明未准备好或关闭)。 相反,如果您需要信息和统计信息流,那么您可能会从 Firebird Trace API 中获得更多信息。我自己还没有大量使用它,但是 Thomas Steinmauer 的文章Firebird 2.5 中的 Audit and Trace Services提供了很好的介绍。 在您的问题中,您说您期望“更多内容”,但实际上并未指定您需要或期望的内容;我希望这能提供足够的信息。
使用监控表时,您需要了解许多事项:
MON$STATEMENTS
)为您提供运行查询时活动或准备好的语句的列表。SYSDBA
,数据库所有者或具有角色的用户RDB$ADMIN
可以看到所有信息,其他用户只能看到有关自己连接的信息。doc/README.monitoring_tables.txt
现在至于您的屏幕截图:所有语句都来自同一个连接(您自己的)
MON$ATTACHMENT_ID = 1521
:。目前只有一条语句处于活动状态(MON$STATE = 1
)并参与事务MON$TRANSACTION_ID = 90964
,并于 2012 年 12 月 6 日 10:08 开始(MON$TIMESTAMP
),其余的处于非活动状态(MON$STATE = 0
),因此没有事务 ID 和时间戳。第一条语句也是当前唯一具有实际查询 (MON$SQL_TEXT
) 的语句,即在屏幕截图中实际产生结果的查询。在 Firebird 中,语句与使用该语句执行的实际查询分开分配。这并不多,但是如果您加入了
MON$RECORD_STATS
,MON$IO_STATS
或者MON$MEMORY_USAGE
基于MON$STAT_ID
您将收到有关查询的统计信息(即读取次数、记录更新、读取或写入的页面数、内存使用)。监控表显示特定时刻的信息,如果查询在您执行时已经完成,您将不会获得任何信息(我不是 100% 确定,但它可能会一直可用,直到下一次执行声明,或直到声明未准备好或关闭)。相反,如果您需要信息和统计信息流,那么您可能会从 Firebird Trace API 中获得更多信息。我自己还没有大量使用它,但是 Thomas Steinmauer 的文章Firebird 2.5 中的 Audit and Trace Services提供了很好的介绍。
在您的问题中,您说您期望“更多内容”,但实际上并未指定您需要或期望的内容;我希望这能提供足够的信息。