All,
We are using a third party application (Retek
Warehouse management) which uses AQ as communication mechanism between
processes. The problem we are facing is that the AQ query behind Dequeue is
doing a full tablescan on queue table which is causing about 5Billion logical
reads/day and is bringing the DB to its knees.
Following is the query which I gleaned from tracing
the process
select /*+ FIRST_ROWS */ qt.rowid, qt.msgid, qt.corrid, qt.priority,
qt.delay, qt.expiration, qt.retry_count, qt.exception_qschema,
qt.exception_queue, qt.chain_no, qt.local_order_no, qt.enq_time,
qt.time_manager_info, qt.state, qt.enq_tid, qt.step_no from PAR3214.GENERICTCP
qt where q_name = :1 and state = :2 order by q_name, state, enq_time, step_no,
chain_no, local_order_no for update skip locked
The procedure call is following
DBMS_AQ.DEQUEUE( 'par3214.' || qname, queueopts, msgprops, msg_obj, msgid
);
Since this is an internal query, I can not change
the HINT ( Itested that removing the hint drops logical reads from 2400 to
3).
Any ideas?
Thanks
Shaleen
|
- RE: AQ query from dequeuw procedure not using index -... orafaq
- RE: AQ query from dequeuw procedure not using in... John Kanagaraj
- RE: AQ query from dequeuw procedure not using in... Jamadagni, Rajendra
- RE: AQ query from dequeuw procedure not using in... Rajesh . Rao
- Re: AQ query from dequeuw procedure not using in... orafaq
- Re: AQ query from dequeuw procedure not using in... orafaq
- Re: AQ query from dequeuw procedure not using in... Casey A. Jordan
- Re: AQ query from dequeuw procedure not using in... Casey A. Jordan