我理解gv$aq
是一个系统范围的视图,它包含数据库中所有队列中不同状态的消息数。
我的问题是:由于gv$aq
与任何给定的queue_table
相比将包含更多数据,因此查询此视图以获取特定{{的消息的数量等){ 1}}比直接查询queue_table
本身需要花费更多的时间。我们应该更好地查询queue_table
而不是队列表本身有什么特别的原因吗?
谢谢!
答案 0 :(得分:0)
视图qv$aq
仅包含每个队列的统计信息,如消息数或平均等待时间。 queue_table
包含所有单个邮件。
要获取queue_table
的消息数,Oracle必须检查所有消息并对其进行总结。为了从qv$aq
视图中获取统计数据,Oracle只是从系统内存中查找它们,这要快得多。