4

我根本不使用高级队列,但AQ$_PLSQL_NTFNnnnn调度程序作业的数量不断增长。

目前有8个这样的工作。并且因为它们 - 我需要刷新最大同时运行的作业计数。

大约 2 个月前,限制为 10 是可以的,目前我有限制 15,并且由于 8 个“不必要”(至少对我而言)这些工作 - 我需要将其增加到 20 或 25 :-S

那么,它们是用来做什么的呢?我可以删除/禁用它们吗?

UPD:我已经将同时工作的数量增加到了 25 个,而在这个晚上,AQ...工作的数量上升到了 25 个:-S 这是在开玩笑吗?!

4

2 回答 2

2

在我看来,有些东西正在数据库中的某处使用 AQ。

我搜索了一下,这里有一些可能有用的信息 - http://www.ora600.be/node/5547 - 主要是隐藏参数 _srvntfn_max_concurrent_jobs 显然限制了为通知运行的作业总数。

信息似乎很难获得,但显然通知进入表 sys.alert_qt,因此您可以尝试查看其中出现的内容。

您还可以查看 ALL_QUEUES 和其他 ALL_QUEUE* 表,看看您的数据库中是否有任何您不知道的队列。

我假设您使用的是 Oracle 11gR1 或 11gR2?

于 2011-07-11T08:39:45.730 回答
1

当使用 PL/SQL 回调函数处理 AQ 队列时,我们已经看到生成了这些作业。您可以查看此表以查找任何已注册的订阅:

  select * from   dba_subscr_registrations;

更多关于 AQ PL/SQL 回调

于 2016-08-17T09:34:55.817 回答