【发布时间】:2013-01-15 05:18:22
【问题描述】:
我了解gv$aq 是一个系统范围的视图,其中包含数据库中所有队列中处于不同状态的消息数量。
我的问题是:由于与任何给定的 queue_table 相比,gv$aq 将包含更多的数据,因此查询此视图以获取特定 queue_table 的信息(消息数量等)需要花费比直接查询queue_table 本身要多得多。有什么具体的原因让我们最好查询gv$aq 而不是队列表本身?
谢谢!
【问题讨论】:
我了解gv$aq 是一个系统范围的视图,其中包含数据库中所有队列中处于不同状态的消息数量。
我的问题是:由于与任何给定的 queue_table 相比,gv$aq 将包含更多的数据,因此查询此视图以获取特定 queue_table 的信息(消息数量等)需要花费比直接查询queue_table 本身要多得多。有什么具体的原因让我们最好查询gv$aq 而不是队列表本身?
谢谢!
【问题讨论】:
qv$aq 视图仅包含每个队列的统计信息,例如消息数或平均等待时间。 queue_table 包含所有单独的消息。
要获得来自queue_table 的消息数量,Oracle 必须检查所有消息并将它们汇总。要从qv$aq 视图中获取统计信息,Oracle 只需从系统内存中查找它们,这要快得多。
【讨论】: