在 Oracle 中,一个通知事件会占用多少内存?

How much memory does consume one notification event in Oracle?

提问人:Andrew Klimov 提问时间:9/25/2021 最后编辑:DharmanAndrew Klimov 更新时间:9/26/2021 访问量:34

问:

我读了一篇文章,标题为事件监视器进程:体系结构和已知问题(文档 ID 105067.1):

...从 10.1 开始,程序DBMS_AQADM。GET_WATERMARK和 DBMS_AQADM。SET_WATERMARK可用于设置内存量 可用于通知事件...

有人可以解释一下一个通知事件的内存量是多少吗?一个通知事件精确消耗多少内存? 我需要知道这一点,因为我想预测在具有大量队列消息的 Oracle 数据库密集型工作负载期间所有通知事件的内存量,在这种情况下,每条消息都需要通过通知回调过程进行处理。如果我知道这一点,我将能够将dbms_aqadm.set_watermark设置为适当的值。

Oracle Events 回调 通知 队列

评论

0赞 Andrew Klimov 9/25/2021
我想提一下 - 在 v$sesstat 中有一个统计条目仅用于 AQ 当前水印消耗会非常有帮助......
0赞 Justin Cave 9/25/2021
当然,这将取决于通知消息的大小,这是您可以控制的。如果要对消息进行排队,则与对有效负载为大型 JSON 文档的消息进行排队相比,这将占用更少的内存。对于大多数“x 将工作负载 y 需要多少资源”的问题,最好对您的系统进行基准测试并查看。运行 y 的 1%、运行 y 的 2%、运行 y 的 10%,依此类推,测量资源消耗,并查看工作负载如何扩展
0赞 Andrew Klimov 9/25/2021
谢谢,贾斯汀。我想澄清一下:如果我在没有通知回调的情况下将消息排队到队列 - 则不会引发通知事件,对吧?因为 EMON 不必对通常的排队执行任何操作。

答: 暂无答案