|Oracle9i Application Developer's Guide - Advanced Queuing
Release 1 (9.0.1)
Part Number A88890-02
Performance and Scalability, 3 of 4
Advanced Queuing table layout should be considered similar to a layout with ordinary database tables and indexes.
Oracle9i Database Performance Guide and Reference for tuning recommendations
Some environments need to process messages in a constant flow, thus requiring that both enqueue and dequeue processes run concurrently. If the message delivery system has only one queue table and one queue, all processes must work on the same segment area at the same time, which impedes delivering a high number of messages at reasonable performance levels.
The best number for concurrent processes must be defined according to available system resources. For example, on a four-CPU system, it is reasonable to start with two concurrent enqueue and two concurrent dequeue processes. If the optimal number of messages that should be delivered through the system has not been achieved, rather than increasing the number of processes, use several subscribers for load balancing.
When enqueue and dequeue processes are not running concurrently, that is, messages are first enqueued and then dequeued, contention on the same data segment is lower than in the case of concurrent processes. In this case, the total time taken to deliver messages by the system is longer than when they run concurrently. Increasing the number of processes helps both enqueuing and dequeuing. The message throughput rate is higher for enqueuers than for dequeuers when the number of processes is increased. Normally, the dequeue operations throughput is much less than the enqueue operation (
INSERT)throughput because dequeue operations perform