Oracle, poor performance

below query in our process which is taking between 7-8 seconds when executed. when you execute the same query by commenting out the condition AND INBOUND_OUTBOUND_IND = 'I', it returns within milli seconds. The column INBOUND_OUTBOUND_IND is partitioned. we included the column in the condition to gain performance (searching 1 million records vs total 3 million records). other queries using INBOUND_OUTBOUND are just working fine, but this one is not. Could you please review and let us know why the condition on this column which is supposed to gain a performance is hurting us. If it can be fixed by defining any indexes on the database side, please let me know. any help in this regard is greatly appreciated.

SELECT inbound_seq_pk
      FROM aqtit01.tqt_it_inbound_seq
     WHERE inbound_seq_pk = (SELECT inbound_seq_pk
                           FROM (SELECT inbound_seq_pk, rownum AS rn
                                   FROM Aqtit01.TQT_IT_INBOUND_SEQ inboundSeq
                                  WHERE Inbound_Seq_Pk IN (SELECT Inbound_Seq_Pk
                                                             FROM Aqtit01.TQT_IT_Inbound_Parent
                                                            WHERE PARENT_MATRL IN (SELECT PARENT_MATRL
                                                                                     FROM Aqtit01.TQT_IT_Inbound_Parent
                                                                                    WHERE Inbound_Seq_Pk = 3349801) )
                                    AND Seq_Nbr     < 20110927191030002
                                    AND STS_CDE not in ('RESPONSE_SUCCESS')
                                    AND INBOUND_OUTBOUND_IND = 'I'
                                  ORDER BY seq_nbr
                                ) a
                          WHERE a.rn = 1)
                          AND STS_CDE not in ('RESPONSE_SUCCESS')
Rao_SAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
slightwv (䄆 Netminder)Connect With a Mentor Commented:
Can you post the plan with "AND INBOUND_OUTBOUND_IND = 'I'" commented out?

You might have to use a HINT to tweak the execution plan.
0
 
Devinder Singh VirdiLead Oracle DBA TeamCommented:
>> The column INBOUND_OUTBOUND_IND is partitioned.

Please provide us execution plan with/without INBOUND_OUTBOND_IND and list of all indexes available along with column.
0
 
Rao_SAuthor Commented:
attached expalin plan output.. txqm1-poor-query-explain-1.xls
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
schwertnerConnect With a Mentor Commented:
Compute the statistics over the tables and indexes in the schema you use.

Have you indexed the column INBOUND_OUTBOUND_IND ?

Of the index (if the selectivity is not high) will help.

An index will be used if the selected by the condition rows are 4-10% of the table. Using hint you can try to force the usage of the index.
0
 
Rao_SAuthor Commented:
hi slightwv, the dba implemented a sql profile for the statement, the cost of the old explain plan was 7,970,617856, the new cost is 37,485,208. there was a gain the application performance.

the inbound_sequence_pk is no longer valid today and the sts_cde for that seq_pk has been to changed to 'O'. so i cannot send you the cost plan with "AND INBOUND_OUTBOUND_IND = 'I'" commented out....

with regards to indexes.. (if u check the explain plan)...these are the indexes being used....
PKQT_IT_INBOUND_SEQ is indexed on inbound_seq_pk and is the primary key..
XQT_IT_INBOUND_SEQ_N9 is indexed on seq_nbr..
XQT_IT_INBOUND_PARENT_U1 is indexed on inbound_seq_nbr,parent_matrl..
XQT_IT_INBOUND_PARENT_N2 is indexed on parent_matrl,inbound_seq_pk...

i am not sure about whether the indexes are local or global...but if u look at the expalin plan....TABLE ACCESS BY GLOBAL INDEX ROWID ....probably means the partitioned index is global...?

0
 
slightwv (䄆 Netminder) Commented:
>>new cost is 37,485,208

Then where was the plan you posted generated?  I don't see costs that high.
0
 
Rao_SAuthor Commented:
that is correct... i thought so too...that is what the dba told us....so do you know how he would have calculated the cost..?
0
 
slightwv (䄆 Netminder) Commented:
>>so do you know how he would have calculated the cost..?

No.  You will need to ask them.

Also, if performance is no longer an issue because you moved from 'I' to 'O' then is there still a question here?
0
 
Rao_SAuthor Commented:
nope, no question... related to the query above...i will go ahead and close the question..
0
 
Rao_SAuthor Commented:
Thank you...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.