gpt4 book ai didi

firebird - 了解 Firebird 监控表中的 MON$STAT_ID

转载 作者:行者123 更新时间:2023-12-01 06:13:07 25 4
gpt4 key购买 nike

我几周前发帖询问有关 firebird 数据库以及如何监控它的信息。从那时起,我想出了一个漂亮的脚本来监视所有页面读取/写入/获取/标记。我正在监视的列之一是 MON$STAT_IDMON$STAT_GROUP 字段。这对我来说是一个不错的数字;但是,我无法关联和理解它到底是什么。我认为打印出 MON$STAT_GROUP 会有所帮助,但它还没有以任何方式帮助我......

我还查看了 RDB$ 命令,但发现的文档非常有限,无法确定它们是否可以帮助我监控数据库。

所以我决定来这里首先询问我是否以其他人可以查看页面读取/写入/提取/标记中的数据的方式监控我的数据库,并对数据库是否运行做出明智的决定正如预期的那样。

其次,将 RDB$ 命令添加到我的脚本中是否会增加我将提供给数据库人员的数据的值(value)?

最后,也许也是最重要的一点,是否可以将 MON$STAT_ID 字段与数据库中的实际表相关联,以了解何时发生了不应该发生的事情?我目前每分钟都在监视数据库,这可能很频繁,但我正在获取有效数据。现在唯一的问题是如何解释这些数据。有人可以就他们过去使用/曾经使用过的对他们有用的方法给我建议吗?

(注意:运行 firebird 2.1)

最佳答案

MON$IO_STATS 中的列 MON$STAT_ID(以及 MON$RECORD_STATSMON$MEMORY_USAGE)是监控表中记录的主键。几乎所有其他监控表都包含一个 MON$STAT_ID 以指向这些统计信息:MON$ATTACHMENTSMON$CALL_STACKMON$数据库MON$STATEMENTSMON$TRANSACTIONS

换句话说:统计适用于数据库、附件、事务、语句或调用级别(PSQL 执行)。统计表包含一个名为 MON$STAT_GROUP 的列来辨别这些类型。 MON$STAT_GROUP 的值在 RDB$TYPES 中描述:

  • 0 : 数据库
  • 1 : 附件
  • 2 : 交易
  • 3 : 声明
  • 4 : 调用

通常,级别 0 的统计信息包含级别 1 的所有信息,级别 1 包含该附件的级别 2 的所有信息,级别 2 包含该事务的级别 3 的所有信息,级别 3 包含该语句的级别 4 的所有信息。

由于可能处理了与较低级别无关的数据,或者特定附件、事务或语句句柄已被删除,因此较低级别的数字不一定汇总到较高级别的总数。

无法将统计信息与特定表相关联(因为此信息与表无关,但是 - 简化 - 来自执行可能涵盖多个表的语句)。

正如我也评论过的,我不确定您所说的“RDB$ 命令”是什么意思。但我假设你在谈论 RDB$GET_CONTEXT()RDB$SET_CONTEXT() .您可以使用 RDB$GET_CONTEXT() 获取当前连接 (SESSION_ID) 和事务 ID (TRANSACTION_ID)。这些值可用于监控表中的 MON$ATTACHMENT_IDMON$TRANSACTION_ID。我认为 SYSTEM 命名空间中的其他变量并不有趣,而 USER_SESSIONUSER_TRANSACTION 中的变量都是用户定义的(并且最初这些命名空间是空的)。

使用 CURRENT_CONNECTION 要容易得多和 CURRENT_TRANSACTION语句中的上下文变量。如 Firebird 安装中的 doc\README.monitoring_tables.txt 中所述:

System variables CURRENT_CONNECTION and CURRENT_TRANSACTION could be used to select data about the current (for the caller) connection and transaction respectively. These variables correspond to the ID columns of the appropriate monitoring tables.

注意:我的回答是基于 Firebird 2.5。

关于firebird - 了解 Firebird 监控表中的 MON$STAT_ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com