Java Oracle AQ性能调整
我正在使用oracle数据库[11.2],它带有高级队列(AQ)和java JMS API。 我当前的oracle设置是默认设置,没有其他调优参数。 高级体系结构: 数据库将消息排入持久队列(按优先级排序) Java JMS使用者正在使用3个并发线程对消息进行出列。 一切都很好!和快乐场景一样,只要消息在队列中@10K。 一旦队列中的消息加倍或三倍退出队列性能就会显著下降 我遵循以下链接Java Oracle AQ性能调整,java,database,oracle,jms,oracle-aq,Java,Database,Oracle,Jms,Oracle Aq,我正在使用oracle数据库[11.2],它带有高级队列(AQ)和java JMS API。 我当前的oracle设置是默认设置,没有其他调优参数。 高级体系结构: 数据库将消息排入持久队列(按优先级排序) Java JMS使用者正在使用3个并发线程对消息进行出列。 一切都很好!和快乐场景一样,只要消息在队列中@10K。 一旦队列中的消息加倍或三倍退出队列性能就会显著下降 我遵循以下链接 对IO和AQ的性能调整有什么建议吗 我看这是旧的,但我要试一试。事实上,它在队列中有少量(er)消息的情况
对IO和AQ的性能调整有什么建议吗 我看这是旧的,但我要试一试。事实上,它在队列中有少量(er)消息的情况下运行良好,但在大量(r)消息的情况下运行不佳,这让我相信问题可能出在底层队列表和IOT的优化器统计数据中 从: 确保正在收集统计信息,以便优化查询 正在选择检索邮件的计划。默认情况下,队列 表格被锁定,无法自动收集统计数据。这个 建议使用代表性队列收集统计信息 消息加载并锁定它们 还有其他几种可能性,包括调优(或不调优)
AQ_TM_进程
和使用ASSM,但如果没有更多关于数据库环境的信息,就很难提出修复建议,甚至很难知道这是否是问题所在
EXEC DBMS_AQADM.CREATE_QUEUE_TABLE (queue_table => 'order_queue_table', queue_payload_type => 'aqadm.order_message_t', sort_list=>'PRIORITY,ENQ_TIME');
EXEC DBMS_AQADM.CREATE_QUEUE (queue_name => 'order_queue', queue_table => 'order_queue_table');
EXEC DBMS_AQADM.START_QUEUE (queue_name => 'order_queue');