Approach to tune a query in short time

Hi All,
Oracle 10g I know this question is asked number of times and there are many good replies to them.
But I just want to know how to approach a completely new query ( like the task given to me to fine tume a query in 1 day when I dont have even the slightest idea about how to proceed) if the timeline is very stringent and by just looking at the explain plan, you have to take the decision.
I am just posting my query here and what I am looking for is some lead on how to identify the congetion point which is where this query takes long time ( in my case some 15 mins as reported to me)
select
                 "LEGAL ENTITY",
                 "Legal Entity Description",
                 "Cluster",
                 "Sub_Cluster",
                 "Account",
                  rownum,
                 "Moody_Rating",
                 "Process_Date",
                 "Merge_Description",
                  rownum,
                 "Merge_Description",
                 "is_id_ic",
                 "is_n",
                 "cusip",
                 "isin",
                 "credit_spread_PV01",
                 "amount",
                 "Market_Value",
                 "Currency",
                 "Sensitivity_Type",
                 "maturity_Date",
                 "Exception_Flag",
                 "Base_Security_Id",
                 DECODE(sign("Market_Value"),-1,DeCode(SigN("Recovery"),-1,"Recovery",('-'||"Recovery")), ABS("Recovery")) as "Recovery"
                 from
                 select
                 le.name "LEGAL ENTITY",
                 le.display_name "Legal Entity Description",
                 mn4.display_name "Cluster",
                 mn3.display_name "Sub_Cluster",
                 bookname.display_name "Account",
                 (SELECT RATING_NAME
                    FROM moody_rating
                   where moody_rating_id = i.moody_rating_id) "Moody_Rating",
                 to_char(to_date(:v_cob_date,'DD-MM-YY'),'YYYYMMDD') "Process_Date",
                 ss.issuer "Merge_Description",
                 PART.MARS_ISSUER "is_id_ic",
                 PART.PARTICIPANT_NAME "is_n",
                 NULL "cusip",
                 NULL "isin",
                 NULL "credit_spread_PV01",
                 NULL "amount",
                 sum(mtmsens.sensitivity_value) "Market_Value",
                 (SELECT distinct cc.CCY
                    FROM legacy_country CC
                   INNER JOIN MARSNODE MN ON CC.countryisocode = MN.NAME
                                         and mn.close_date is null
                   INNER JOIN MARSNODETYPE MNT ON MN.TYPE_ID =
                                                  MNT.NODE_TYPE_ID
                                              AND MNT.NAME = 'COUNTRY'
                                              and mnt.close_date is null
                   where MN.NODE_ID = part.country_domicile_id
                     and cc.begin_cob_date <= :v_cob_date
                     and cc.end_cob_date > :v_cob_date
                     and rownum < 2) "Currency",
                 'CREDITSPREADMARKETVALUE' "Sensitivity_Type",
                 NULL "maturity_Date",
                 NULL "Exception_Flag",
                 NULL "Base_Security_Id",
                 sum(ss.sensitivity_value) "Recovery"
                 from staging_position sp
            left JOIN position p on (
                                     p.feed_instance_id = sp.feed_instance_id
                                 AND p.feed_row_id = sp.feed_row_id)
            left JOIN staging_instrument si on (si.feed_instance_id =
                                               sp.feed_instance_id AND
                                               si.position_key =
                                               sp.position_key)
            left join book b on (b.book_id = p.book_id and
                                b.begin_cob_date <= :v_cob_date and
                                b.end_cob_date > :v_cob_date)
            left join marsnode bk on (b.book_id = bk.node_id and
                                     bk.close_date is null)
            left join marsnode le on (b.leg_ent_id = le.node_id and
                                     le.close_date is null)
            left join marsnode bookname on (bookname.node_id = p.book_id and
                                           bookname.close_date is null)
            left join marsnodelink mnl on p.book_id = mnl.node_id
                                      and :v_bus_org_hier_id =
                                          mnl.hierarchy_id
                                      and mnl.close_date is null
                                      and :v_cob_date >= mnl.begin_cob_date
                                      and :v_cob_date < mnl.end_cob_date
            left join marsnode mn on mn.node_id = mnl.parent_id
                                 and mn.close_date is null
            left join marsnodelink mnl2 on mn.node_id = mnl2.node_id
                                       and :v_bus_org_hier_id =
                                           mnl2.hierarchy_id
                                       and mnl2.close_date is null
                                       and :v_cob_date >= mnl2.begin_cob_date
                                       and :v_cob_date < mnl2.end_cob_date
            left join marsnode mn2 on mn2.node_id = mnl2.parent_id
                                  and mn2.close_date is null
            left join marsnodelink mnl3 on mn2.node_id = mnl3.node_id
                                       and :v_bus_org_hier_id =
                                           mnl3.hierarchy_id
                                       and mnl3.close_date is null
                                       and :v_cob_date >= mnl3.begin_cob_date
                                       and :v_cob_date < mnl3.end_cob_date
            left join marsnode mn3 on mn3.node_id = mnl3.parent_id
                                  and mn3.close_date is null
            left join marsnodelink mnl4 on mn3.node_id = mnl4.node_id
                                       and :v_bus_org_hier_id =
                                           mnl4.hierarchy_id
                                       and mnl4.close_date is null
                                       and :v_cob_date >= mnl4.begin_cob_date
                                       and :v_cob_date < mnl4.end_cob_date
            left join marsnode mn4 on mn4.node_id = mnl4.parent_id
                                  and mn4.close_date is null
          --sensitivity data
            left JOIN STAGING_SENSITIVITY ss ON (ss.FEED_INSTANCE_ID =
                                                sp.FEED_INSTANCE_ID AND
                                                ss.FEED_ROW_ID =
                                                sp.FEED_ROW_ID)
          --sensitivity data
            left JOIN STAGING_SENSITIVITY mtmsens ON (mtmsens.FEED_INSTANCE_ID =
                                                     sp.FEED_INSTANCE_ID AND
                                                     mtmsens.FEED_ROW_ID =
                                                     sp.FEED_ROW_ID)
            LEFT join xref_domain_value_map XREF on (XREF.Src_Value =
                                                    ss.issuer and
                                                    XREF.close_action_id is null and
                                                    XREF.Begin_Cob_Date <=
                                                    :v_cob_date and
                                                    XREF.End_Cob_Date >
                                                    :v_cob_date AND
                                                    xref.domain_map_id = 601 AND
                                                    xref.source_system_id = 307 AND xref.ISSUE_ID is not null)
            Left join ISSUE i on (i.issue_id = xref.issue_id)
            LEFT join participant PART ON (PART.PARTICIPANT_ID =
                                          XREF.TGT_VALUE and
                                          PART.Close_Action_Id is null and
                                          PART.Begin_Cob_Date <= :v_cob_date and
                                          PART.End_Cob_Date > :v_cob_date)
            left join moody_rating RATING on (rating.moody_rating_id =
                                              i.MOODY_RATING_ID)
           where sp.feed_instance_id in
                 (select fbi.feed_instance_id
                  from   feed_book_status fbi ,
                         feed_instance fi
                  where  fbi.cob_date = :v_cob_date
                  and    fbi.feed_instance_id = fi.feed_instance_id
                  and    fi.feed_id in (
                                       select feed_id from feed_group_xref where feed_group_id in (
                                           select feed_group_id from feed_group where description like 'CDO Feeds')
                                           and close_action_id is null
             and sp.Feed_Row_Status_Id = 1
             and ss.sensitivity_type = 'CREDITSPREADDEFAULT'
             and mtmsens.sensitivity_type = 'MTMVALUE'
             and le.name='161'
             group by le.name,
                    le.display_name,
                    mn3.display_name,
                    mn4.display_name,
                    mn.display_name,
                    i.moody_rating_id,
                    ss.issuer,
                    PART.MARS_ISSUER,
                    PART.PARTICIPANT_NAME,
                    sp.feed_instance_id,
                    part.country_domicile_id,
                    bookname.display_name) And the explain plan
SELECT STATEMENT, GOAL = CHOOSE               Cost=19365     Cardinality=1     Bytes=731
TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MOODY_RATING     Cost=1     Cardinality=1     Bytes=9
  INDEX UNIQUE SCAN     Object owner=MARS     Object name=PK_MOODY_RATING     Cost=0     Cardinality=1     
HASH UNIQUE               Cost=77     Cardinality=1     Bytes=488
  COUNT STOPKEY                         
   HASH JOIN               Cost=76     Cardinality=1     Bytes=488
    NESTED LOOPS               Cost=68     Cardinality=1     Bytes=460
     HASH JOIN               Cost=66     Cardinality=1     Bytes=450
      HASH JOIN               Cost=59     Cardinality=1     Bytes=412
       NESTED LOOPS               Cost=51     Cardinality=1     Bytes=402
        HASH JOIN               Cost=49     Cardinality=1     Bytes=392
         NESTED LOOPS               Cost=42     Cardinality=1     Bytes=359
          NESTED LOOPS               Cost=40     Cardinality=1     Bytes=349
           NESTED LOOPS               Cost=37     Cardinality=1     Bytes=300
            NESTED LOOPS               Cost=34     Cardinality=1     Bytes=251
             HASH JOIN               Cost=32     Cardinality=1     Bytes=241
              TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=27
               NESTED LOOPS               Cost=24     Cardinality=1     Bytes=231
                NESTED LOOPS               Cost=21     Cardinality=1     Bytes=204
                 NESTED LOOPS               Cost=18     Cardinality=1     Bytes=171
                  NESTED LOOPS               Cost=16     Cardinality=1     Bytes=136
                   NESTED LOOPS               Cost=13     Cardinality=1     Bytes=86
                    NESTED LOOPS               Cost=10     Cardinality=1     Bytes=37
                     VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=10
                      FILTER                         
                       CONNECT BY WITH FILTERING                         
                        TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
                         INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
                          HASH JOIN               Cost=5     Cardinality=1     Bytes=62
                           TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
                           TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
                        NESTED LOOPS                         
                         CONNECT BY PUMP                         
                         TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=39
                          INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
                       TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
                     TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=27
                      INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
                    TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=49
                     INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
                   TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=50
                    INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
                  TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODETYPE     Cost=2     Cardinality=1     Bytes=35
                   INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODETYPE     Cost=1     Cardinality=1     
                 TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=NODE_ASSOC     Cost=3     Cardinality=1     Bytes=33
                  INDEX RANGE SCAN     Object owner=MARS     Object name=PK_NODE_ASSOC     Cost=1     Cardinality=3     
                INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
              VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=10
               FILTER                         
                CONNECT BY WITH FILTERING                         
                 TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
                  INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
                   HASH JOIN               Cost=5     Cardinality=1     Bytes=62
                    TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
                    TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
                 NESTED LOOPS                         
                  CONNECT BY PUMP                         
                  TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=39
                   INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
                TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
             INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     Bytes=10
            TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=NODE_ASSOC     Cost=3     Cardinality=1     Bytes=49
             INDEX RANGE SCAN     Object owner=MARS     Object name=PK_NODE_ASSOC     Cost=1     Cardinality=3     
           TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=49
            INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
          INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     Bytes=10
         VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=33
          FILTER                         
           CONNECT BY WITH FILTERING                         
            TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
             INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
              HASH JOIN               Cost=5     Cardinality=1     Bytes=62
               TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
               TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
            NESTED LOOPS                         
             CONNECT BY PUMP                         
             TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=39
              INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
           TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
        INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     Bytes=10
       VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=10
        FILTER                         
         CONNECT BY WITH FILTERING                         
          TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
           INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
            HASH JOIN               Cost=5     Cardinality=1     Bytes=62
             TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
             TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
          NESTED LOOPS                         
           CONNECT BY PUMP                         
           TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=39
            INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
         TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
      VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=38
       FILTER                         
        CONNECT BY WITH FILTERING                         
         TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
          INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
           HASH JOIN               Cost=5     Cardinality=1     Bytes=62
            TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
            TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
         NESTED LOOPS                         
          CONNECT BY PUMP                         
          TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=57
           INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
        TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=36
     INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     Bytes=10
    VIEW     Object owner=MARS          Cost=7     Cardinality=1     Bytes=28
     FILTER                         
      CONNECT BY WITH FILTERING                         
       TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK               
        INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_PARENT_ID     Cost=3     Cardinality=250     Bytes=2500
         HASH JOIN               Cost=5     Cardinality=1     Bytes=62
          TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
          TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHYROOT     Cost=2     Cardinality=5     Bytes=175
       NESTED LOOPS                         
        CONNECT BY PUMP                         
        TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=7     Cardinality=1     Bytes=57
         INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_MNL_HI_PI_NI     Cost=3     Cardinality=4     
      TABLE ACCESS FULL     Object owner=MARS     Object name=MARSHIERARCHY     Cost=2     Cardinality=1     Bytes=27
COUNT                         
  VIEW     Object owner=MARS          Cost=19365     Cardinality=1     Bytes=731
   HASH GROUP BY               Cost=19365     Cardinality=1     Bytes=1112
    NESTED LOOPS OUTER               Cost=19364     Cardinality=1     Bytes=1112
     NESTED LOOPS OUTER               Cost=19361     Cardinality=1     Bytes=1040
      NESTED LOOPS OUTER               Cost=19361     Cardinality=1     Bytes=1037
       NESTED LOOPS OUTER               Cost=19360     Cardinality=1     Bytes=1019
        NESTED LOOPS OUTER               Cost=19357     Cardinality=1     Bytes=951
         NESTED LOOPS OUTER               Cost=19354     Cardinality=1     Bytes=914
          NESTED LOOPS OUTER               Cost=19351     Cardinality=1     Bytes=877
           NESTED LOOPS OUTER               Cost=19337     Cardinality=1     Bytes=820
            NESTED LOOPS OUTER               Cost=19334     Cardinality=1     Bytes=783
             NESTED LOOPS OUTER               Cost=19320     Cardinality=1     Bytes=726
              NESTED LOOPS OUTER               Cost=19317     Cardinality=1     Bytes=707
               NESTED LOOPS OUTER               Cost=19303     Cardinality=1     Bytes=650
                NESTED LOOPS OUTER               Cost=19300     Cardinality=1     Bytes=613
                 NESTED LOOPS               Cost=19285     Cardinality=1     Bytes=556
                  NESTED LOOPS               Cost=19280     Cardinality=1     Bytes=443
                   NESTED LOOPS OUTER               Cost=19275     Cardinality=1     Bytes=330
                    HASH JOIN RIGHT SEMI               Cost=17457     Cardinality=1     Bytes=248
                     VIEW     Object owner=SYS     Object name=VW_NSO_1     Cost=1119     Cardinality=30     Bytes=150
                      HASH JOIN               Cost=1119     Cardinality=30     Bytes=2040
                       TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_GROUP     Cost=2     Cardinality=5     Bytes=120
                       HASH JOIN               Cost=1116     Cardinality=1607     Bytes=70708
                        TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_GROUP_XREF     Cost=13     Cardinality=701     Bytes=14721
                        HASH JOIN               Cost=1102     Cardinality=3602     Bytes=82846
                         INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_FBS_CD_FII_BI     Cost=22     Cardinality=3602     Bytes=46826
                         TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_INSTANCE     Cost=1024     Cardinality=670264     Bytes=6702640
                     NESTED LOOPS               Cost=16337     Cardinality=324     Bytes=78732
                      HASH JOIN               Cost=14324     Cardinality=1977     Bytes=302481
                       NESTED LOOPS OUTER               Cost=11     Cardinality=1     Bytes=114
                        NESTED LOOPS               Cost=8     Cardinality=1     Bytes=95
                         TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=5     Cardinality=1     Bytes=59
                          INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_NODE1     Cost=3     Cardinality=2     
                         TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=BOOK     Cost=3     Cardinality=2     Bytes=72
                          INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_BOOK_LEI_BCD     Cost=2     Cardinality=4     
                        TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=19
                         INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
                       PARTITION RANGE ALL               Cost=13995     Cardinality=3854299     Bytes=150317661
                        TABLE ACCESS FULL     Object owner=MARS     Object name=POSITION     Cost=13995     Cardinality=3854299     Bytes=150317661
                      PARTITION RANGE ITERATOR               Cost=2     Cardinality=1     Bytes=90
                       PARTITION HASH ITERATOR               Cost=2     Cardinality=1     Bytes=90
                        TABLE ACCESS BY LOCAL INDEX ROWID     Object owner=MARS     Object name=STAGING_POSITION     Cost=2     Cardinality=1     Bytes=90
                         INDEX UNIQUE SCAN     Object owner=MARS     Object name=PK_STAGINGPOSITON     Cost=1     Cardinality=1     
                    PARTITION HASH ITERATOR               Cost=1819     Cardinality=1     Bytes=82
                     TABLE ACCESS BY LOCAL INDEX ROWID     Object owner=MARS     Object name=STAGING_INSTRUMENT     Cost=1819     Cardinality=1     Bytes=82
                      INDEX RANGE SCAN     Object owner=MARS     Object name=PK_STAGINGINSTRUMENT     Cost=9     Cardinality=2551     
                   PARTITION RANGE ITERATOR               Cost=5     Cardinality=1     Bytes=113
                    PARTITION HASH ITERATOR               Cost=5     Cardinality=1     Bytes=113
                     TABLE ACCESS BY LOCAL INDEX ROWID     Object owner=MARS     Object name=STAGING_SENSITIVITY     Cost=5     Cardinality=1     Bytes=113
                      INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_SENSITIVITY_FEED_ROW_ID     Cost=3     Cardinality=8     
                  PARTITION RANGE ITERATOR               Cost=5     Cardinality=1     Bytes=113
                   PARTITION HASH ITERATOR               Cost=5     Cardinality=1     Bytes=113
                    TABLE ACCESS BY LOCAL INDEX ROWID     Object owner=MARS     Object name=STAGING_SENSITIVITY     Cost=5     Cardinality=1     Bytes=113
                     INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_SENSITIVITY_FEED_ROW_ID     Cost=3     Cardinality=8     
                 TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=14     Cardinality=1     Bytes=57
                  INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_NODE_ID     Cost=2     Cardinality=14     
                TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=37
                 INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
               TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=14     Cardinality=1     Bytes=57
                INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_NODE_ID     Cost=2     Cardinality=14     
              TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=19
               INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
             TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=14     Cardinality=1     Bytes=57
              INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_NODE_ID     Cost=2     Cardinality=14     
            TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=37
             INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
           TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODELINK     Cost=14     Cardinality=1     Bytes=57
            INDEX RANGE SCAN     Object owner=MARS     Object name=FKI_15632_NODE_ID     Cost=2     Cardinality=14     
          TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=37
           INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
         TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=MARSNODE     Cost=3     Cardinality=1     Bytes=37
          INDEX RANGE SCAN     Object owner=MARS     Object name=PK_MARSNODE     Cost=2     Cardinality=1     
        TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=XREF_DOMAIN_VALUE_MAP     Cost=3     Cardinality=1     Bytes=68
         INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_XDVM_DMI_SV_BCD     Cost=2     Cardinality=1     
       TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=ISSUE     Cost=1     Cardinality=1     Bytes=18
        INDEX UNIQUE SCAN     Object owner=MARS     Object name=PK_ISSUE     Cost=0     Cardinality=1     
      INDEX UNIQUE SCAN     Object owner=MARS     Object name=PK_MOODY_RATING     Cost=0     Cardinality=1     Bytes=3
     TABLE ACCESS BY INDEX ROWID     Object owner=MARS     Object name=PARTICIPANT     Cost=3     Cardinality=1     Bytes=72
      INDEX RANGE SCAN     Object owner=MARS     Object name=PK_PARTICIPANT     Cost=2     Cardinality=1     

Hi,
in your explain plan:
HASH JOIN RIGHT SEMI               Cost=17457     Cardinality=1     Bytes=248
VIEW     Object owner=SYS     Object name=VW_NSO_1     Cost=1119     Cardinality=30     Bytes=150
HASH JOIN               Cost=1119     Cardinality=30     Bytes=2040
TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_GROUP     Cost=2     Cardinality=5     Bytes=120
HASH JOIN               Cost=1116     Cardinality=1607     Bytes=70708
TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_GROUP_XREF     Cost=13     Cardinality=701     Bytes=14721
HASH JOIN               Cost=1102     Cardinality=3602     Bytes=82846
INDEX RANGE SCAN     Object owner=MARS     Object name=IDX_FBS_CD_FII_BI     Cost=22     Cardinality=3602     Bytes=46826
TABLE ACCESS FULL     Object owner=MARS     Object name=FEED_INSTANCEThis part has the highest costs (this doesn't always mean it is slow). So this leads me to the WHERE clause where feed_group, feed_group_xref and feed_instance full are used. Maybe this can be improved, although the cardinality is not that high, so a full table can be the best. So the question is can indexes help here?
Furthermore there is the full table scan on POSITION:
TABLE ACCESS FULL     Object owner=MARS     Object name=POSITION     Cost=13995     Cardinality=3854299     Bytes=150317661This looks also a large tabel (3 million + records), so is it possible to get this part smaller?
Herald ten Dam
http://htendam.wordpress.com

Similar Messages

  • Undo_tablespace and undo_retetion or tune the query  which one to increase

    hi all,
    In my logs file s
    ORA-01555 caused by SQL statement below (SQL ID: 9nc0n06yryhbk, Query Duration=165122 sec, SCN: 0x05ff.062f3363):
    Tue Feb 5 02:26:39 2008
    SELECT /*+ FIRST_ROWS */ /*+ ORDERED */ B.GID ,K.ELEMENT_TYPE ,K.DATA_SOURCE_GID ,K.PROD_ID ,K.OPTION_CD ,K.MCC ,K.SPN ,K.REGION_CD ,K.WW_CD ,K.COUNTRY_CD ,K.ERROR ,B.GBATCH_ID
    ,B.PERIOD_SEQ_NUM ,B.ACTION ,B.ERROR B_ERROR ,B.COST ,B.INPUT_FILE_ROW_NUM ,B.ACTION_STATUS ,B.ACTION_TIMESTAMP FROM T_INPUT_BUCKET B, T_COS_INPUT_KEY K WHERE B.ACTION_STATUS =
    'initial' AND B.GINPUT_KEY_ID = K.GID AND B.GBATCH_ID = :B1 AND ROWNUM < 8001
    Tue Feb 5 02:35:21 2008
    Thread 2 advanced to log sequence 42907
    Mon Feb 4 09:10:55 2008
    ORA-01555 caused by SQL statement below (SQL ID: 9nc0n06yryhbk, Query Duration=104081 sec, SCN: 0x05ff.05ebc008):
    Mon Feb 4 09:10:55 2008
    SELECT /*+ FIRST_ROWS */ /*+ ORDERED */ B.GID ,K.ELEMENT_TYPE ,K.DATA_SOURCE_GID ,K.PROD_ID ,K.OPTION_CD ,K.MCC ,K.SPN ,K.REGION_CD ,K.WW_CD ,K.COUNTRY_CD ,K.ERROR ,B.GBATCH_ID
    ,B.PERIOD_SEQ_NUM ,B.ACTION ,B.ERROR B_ERROR ,B.COST ,B.INPUT_FILE_ROW_NUM ,B.ACTION_STATUS ,B.ACTION_TIMESTAMP FROM T_INPUT_BUCKET B, T_COS_INPUT_KEY K WHERE B.ACTION_STATUS =
    'initial' AND B.GINPUT_KEY_ID = K.GID AND B.GBATCH_ID = :B1 AND ROWNUM < 8001
    Mon Feb 4 09:14:08 2008
    ===============================================
    and my undo_retention
    Current usage:
    UNDO_01 96736 11596 12 88
    UNDO_02 96736 9357 10 90
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 36000
    can anyone please guide me which one is best to increase undo_retention or undo_tablespace
    or tune the query?
    my database version is
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi
    PL/SQL Release 10.2.0.2.0 - Production
    "CORE     10.2.0.2.0     Production"
    TNS for HPUX: Version 10.2.0.2.0 - Production
    NLSRTL Version 10.2.0.2.0 - Production
    thanks in advance

    IMO best is to
    1) tune the query to minimize time and resource use;
    2) set the undo_retention to size the undo tablespace for the required 'consistent read' rebuild requirements;
    3) set the retention guarantee appropriately
    4) size the undo tablespace based on the required size, probably dictated by 2)
    Why is this an 'either one or other' question? When driving a car and looking for best fuel efficiency, you tune up the car, drive properly AND use the right fuel. You don't just pick one and leave it at that.

  • The i tunes store is for a short time not available, what is going on. Iam waiting for my downloads

    The i tunes store is now for 3 days for a short time not available what can i do?

    Hi, Arimor1.
    I hate being the bearer of bad news but a quick search on Google indicates that the UK iTunes Store is not doing business with the self-governing Bailiwicks that comprise the Channel Islands.
    For what it's worth, one fellow says he's discovered a workaround .

  • Stopping a Query taking more time to execute in runtime in Oracle Forms.

    Hi,
    In the present application one of the oracle form screen is taking long time to execute a query, user wanted an option to stop the query in between and browse the result (whatever has been fetched before stopping the query).
    We have tried three approach.
    1. set max fetch record in form and block level.
    2. set max fetch time in form and block level.
    in above two method does not provide the appropiate solution for us.
    3. the third approach we applied is setting the interaction mode to "NON BLOCKING" at the form level.
    It seems to be worked, while the query took long time to execute, oracle app server prompts an message to press Esc to cancel the query and it a displaying the results fetched upto that point.
    But the drawback is one pressing esc, its killing the session itself. which is causing the entire application to collapse.
    Please suggest if there is any alternative approach for this or how to overcome this perticular scenario.
    This kind of facility is alreday present in TOAD and PL/SQL developer where we can stop an executing query and browse the results fetched upto that point, is the similar facility is avialable in oracle forms ,please suggest.
    Thanks and Regards,
    Suraj
    Edited by: user10673131 on Jun 25, 2009 4:55 AM

    Hello Friend,
    You query will definitely take more time or even fail in PROD,becuase the way it is written. Here are my few observations, may be it can help :-
    1. XLA_AR_INV_AEL_SL_V XLA_AEL_SL_V : Never use a view inside such a long query , becuase View is just a window to the records.
    and when used to join other table records, then all those tables which are used to create a view also becomes part of joining conition.
    First of all please check if you really need this view. I guess you are using to check if the records have been created as Journal entries or not ?
    Please check the possbility of finding it through other AR tables.
    2. Remove _ALL tables instead use the corresponding org specific views (if you are in 11i ) or the sysnonymns ( in R12 )
    For example : For ra_cust_trx_types_all use ra_cust_trx_types.
    This will ensure that the query will execute only for those ORG_IDs which are assigned to that responsibility.
    3. Check with the DBA whether the GATHER SCHEMA STATS have been run atleast for ONT and RA tables.
    You can also check the same using
    SELECT LAST_ANALYZED FROM ALL_TABLES WHERE TABLE_NAME = 'ra_customer_trx_all'.
    If the tables are not analyzed , the CBO will not be able to tune your query.
    4. Try to remove the DISTINCT keyword. This is the MAJOR reason for this problem.
    5. If its a report , try to separate the logic in separate queries ( using a procedure ) and then populate the whole data in custom table, and use this custom table for generating the
    report.
    Thanks,
    Neeraj Shrivastava
    [email protected]
    Edited by: user9352949 on Oct 1, 2010 8:02 PM
    Edited by: user9352949 on Oct 1, 2010 8:03 PM

  • Please tune my query written in PL/SQL.

    Hi there,
    I really appreciate you if could tune my query.
    Here I am using tow tables PRDT_MASTER with 7 thosound records, REG_SUM with 50 records.
    I get nearly 10 thosound records to my cursor.
    From these 10 thosound records I have to prepare an SQL STATEMENT with dynamic sql.
    That query selects sum() from ACTUALDATA table (This table contains nearly 75thosound records).
    Then that data has to be inserted in to another table PROD_BRAND.
    I had a predesigned tables where i can't change or create any index, Infact no tables any no index. There is no primary key on the columns also.
    Now my problem is while i execute this procedure it is taking nearly 1 hour. I don't know why it is taking that much time. Is it because of dynamic sql and without any indexes?
    Or IS IT NECESSARY for me to change anything???
    Is there any alteranative way for me to over come from this problem....
    Your help is really appreciatable bench mark for me.
    I HAVE A TYPE FETCHCURSOR FOR REFCURSOR.
    PROCEDURE PROD_MASTER_PRO
         (DATE1      IN DATE
         ,DATE2 IN DATE
         ,TYPE     IN VARCHAR2
         )      AS
              MAINCUR                MYPACK.FETCHCURSOR;
         COU                     NUMBER(20);
         V_SUM                    NUMBER(20);
              V_SBUCODE               VARCHAR2(255);
              V_CATCODE                VARCHAR2(255);
              V_BRANDCODE               VARCHAR2(255);
              V_PRODCODE           VARCHAR2(255);
              V_TYPE                    VARCHAR2(10):= UPPER(TYPE);          
              REGNAME                    REG_SUM.REGION%TYPE;
              CONDITION               REG_SUM.COND%TYPE;
              QRY                         VARCHAR2(2000);                                                       
         BEGIN
    --//This is for different catcodes codes
              OPEN MAINCUR FOR
              SELECT DISTINCT SBUCODE,CATCODE,PRODCODE,REGION ,COND
              FROM PRDT_MASTER, REG_SUM
              WHERE PRDT_MASTER.SBUCODE=REG_SUM.SUB
              AND PRDT_MASTER.PRODCODE IS NOT NULL     
              ORDER BY SBUCODE,CATCODE,PRODCODE;
              LOOP FETCH MAINCUR INTO V_SBUCODE,V_CATCODE,V_PRODCODE,REGNAME,CONDITION;
              EXIT WHEN MAINCUR%NOTFOUND;
                   --SELECT NVL(SUM(GROSS),0) INTO V_SUM FROM ACTUALDATA WHERE PROD_CODE=V_PRODCODE
                   --AND (TRUNC(INV_DATE) BETWEEN  DATE1 AND DATE2);
                   QRY:=     'SELECT NVL(SUM(GROSS),0) FROM ACTUALDATA     ';               
                   QRY:=     QRY||'     WHERE PROD_CODE= :V_PRODCODE_BIND ';     
                   QRY:=     QRY||'     AND (TRUNC(INV_DATE) BETWEEN :DATE1_BIND AND :DATE2_BIND      )';
                   QRY:=     QRY||'     AND '||CONDITION;
                   EXECUTE IMMEDIATE QRY INTO V_SUM     USING V_PRODCODE ,DATE1,DATE2;
                   INSERT INTO PROD_BRAND
                   (     PROD_CODE,     SBUCODE ,     CODE ,
                        SUM ,     TYPE ,     CODE_TYPE,
                        REGION     
                   )     VALUES
                   (     V_PRODCODE,     V_SBUCODE,     V_CATCODE,
                        V_SUM,          PROD_MASTER_PRO.TYPE,     'THERAPY',
                        REGNAME     
              END LOOP;
              CLOSE MAINCUR;          
              COMMIT;
         END;
    regards,
    Khaleel.

    Parsing SQL is complex. Parsing SQL dynamically at run-time inside a FCAG policy function to determine what predicate to add, is a terribly bad idea. Performance wise and security wise.
    Can you be more specific (basic example) of what you are trying to achieve? And more importantly, what business requirement you are attempting to solve with this approach?
    Perhaps if we understand the full details, we can better assist you.

  • How to tune the query and difference between CBO AND RBO.. Which is good

    Hello Friends,
    Here are some questions I have pls reply back with complete description and url if any ..
    1)How Did you tune Query,
    2)What approach you take to tune query? Do you use Hints?
    3)Where did you tune the query and what are the issue with query?
    4)What is difference between RBO and CBO? where u use RBO and CBO.
    5)Give some information about hash join?
    6) Using explain plan how do u know where the bottle neck in query .. how u will identify where the bottle neck is from explain plan .
    thanks/Kumar

    Hi,
    kumar73 wrote:
    Hello Friends,
    Here are some questions I have pls reply back with complete description and url if any ..
    1)How Did you tune Query, Use EXPLAIN PLAN to see exactly where it is spending its time, and address those areas.
    See the forum FAQ
    SQL and PL/SQL FAQ
    "3. How to improve the performance of my query?"
    2)What approach you take to tune query? Do you use Hints?Hints can help.
    Even more helpful is writing the SQL efficiently (avoiding multiple scans of the same table, filtering early, using built-in rather than user-defined functions, ...), creating and using indexes, and, for large tables, partitioning.
    Table design can have a big impact on performace.
    Look for ways to do part of what you need before the query. This includes denormalizing (when appropriate), the kind of pre-digesting that often takes place in data warehouses, function-based indexes, and, starting in Oracle 11, virtual columns.
    3)Where did you tune the query and what are the issue with query?Either this question is a vague summary of the entire thread, or I don't understand it. Can you re-phrase this part?
    4)What is difference between RBO and CBO? where u use RBO and CBO.Basically, use RBO if you have Oracle 7 or earlier.

  • HELP TO TUNE THIS QUERY

    Hi,
    I'm using below query in procedure.It's taking more more time can some one help to tune this query or advice to rewrite the query.
    Databse :10.1
    SELECT   'Reading Comprehension' TEST_NAME,T.TEST_END_DATE TEST_SESSION_DATE,
            C.POOL_VERSION_ID, I.CREATED_ON POOL_CREATED_DT,
            C.ITEM_ID, C.ITEM_RESPONSE_ID, S.STUDENT_ID_PK, C.RESPONSE_KEY, C.IS_CORRECT RESPONSE_IS_CORRECT,
            T.SCORE SCALE_SCORE, C.RESPONSE_DURATION, P.ITEM_KEY,
            T.TEST_SESSION_DETAIL_ID, SYSDATE CREATED_ON
           -- BULK COLLECT INTO TV_PSYCHO_DET
            FROM
            CAT_ITEM_PARAMETER P, CAT_ITEM_USER_RESPONSE C, TEST_SESSION_DETAIL T,
            TEST_SESSION S, ITEM_POOL_VERSION I, TEST_DETAIL D
            ,INSTITUTION E
            WHERE  TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-11-09','dd-mm-yy') AND TO_DATE('30-11-09','dd-mm-yy')
            AND D.TEST_NAME =  'Reading Comprehension'
            AND T.TEST_SESSION_STATUS_ID = 3
            AND I.POOL_AVAILABILITY='Y'
            AND P.PRETEST=0 AND C.RESTART_FLAG=0
            AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
            AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
            AND C.TEST_SESSION_DETAIL_ID = T.TEST_SESSION_DETAIL_ID
            AND S.INSTITUTION_ID=E.INSTITUTION_ID
            AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3) <> '000'
            AND I.ITEM_ID = C.ITEM_ID
            AND P.ITEM_ID = I.ITEM_ID;expln plan
    Plan hash value: 3712814491                                                                                                      
    | Id  | Operation                                 | Name                        | Rows  | Bytes | Cost (%CPU)| Time     | Pstart|
    Pstop |                                                                                                                          
    |   0 | SELECT STATEMENT                          |                             | 50857 |  7151K| 93382   (1)| 00:18:41 |       |
          |                                                                                                                          
    |*  1 |  FILTER                                   |                             |       |       |            |          |       |
          |                                                                                                                          
    |*  2 |   HASH JOIN                               |                             | 50857 |  7151K| 93382   (1)| 00:18:41 |       |
          |                                                                                                                          
    |   3 |    PARTITION HASH ALL                     |                             |  2312 | 23120 |    25   (0)| 00:00:01 |     1 |
        5 |                                                                                                                          
    |*  4 |     TABLE ACCESS FULL                     | CAT_ITEM_PARAMETER          |  2312 | 23120 |    25   (0)| 00:00:01 |     1 |
        5 |                                                                                                                          
    |*  5 |    HASH JOIN                              |                             | 94938 |    12M| 93356   (1)| 00:18:41 |       |
          |                                                                                                                          
    |*  6 |     TABLE ACCESS FULL                     | ITEM_POOL_VERSION           |  9036 |   132K|    30   (0)| 00:00:01 |       |
          |                                                                                                                          
    |*  7 |     TABLE ACCESS BY GLOBAL INDEX ROWID    | CAT_ITEM_USER_RESPONSE      |     9 |   279 |    18   (0)| 00:00:01 | ROWID |
    ROWID |                                                                                                                          
    |   8 |      NESTED LOOPS                         |                             | 45349 |  5270K| 93325   (1)| 00:18:40 |       |
          |                                                                                                                          
    |*  9 |       HASH JOIN                           |                             |  4923 |   423K| 11377   (1)| 00:02:17 |       |
          |                                                                                                                          
    |* 10 |        INDEX FAST FULL SCAN               | INSTI_ID_NAME_COUN_DISP_IDX |  8165 |   111K|    18   (0)| 00:00:01 |       |
          |                                                                                                                          
    |* 11 |        HASH JOIN                          |                             |  4923 |   355K| 11359   (1)| 00:02:17 |       |
          |                                                                                                                          
    |* 12 |         TABLE ACCESS BY GLOBAL INDEX ROWID| TEST_SESSION_DETAIL         |  4107 |   148K|  6804   (1)| 00:01:22 | ROWID |
    ROWID |                                                                                                                          
    |  13 |          NESTED LOOPS                     |                             |  4923 |   278K|  6806   (1)| 00:01:22 |       |
          |                                                                                                                          
    |* 14 |           INDEX RANGE SCAN                | TEST_DETAIL_AK_1            |     1 |    21 |     2   (0)| 00:00:01 |       |
          |                                                                                                                          
    |* 15 |           INDEX RANGE SCAN                | TEST_SESSION_DETAIL_FK2_I   | 39737 |       |   102   (0)| 00:00:02 |       |
          |                                                                                                                          
    |  16 |         PARTITION HASH ALL                |                             |  1672K|    25M|  4546   (1)| 00:00:55 |     1 |
        5 |                                                                                                                          
    |  17 |          TABLE ACCESS FULL                | TEST_SESSION                |  1672K|    25M|  4546   (1)| 00:00:55 |     1 |
        5 |                                                                                                                          
    |* 18 |       INDEX RANGE SCAN                    | CAT_ITEM_USER_RESP_IDX1     |    18 |       |     3   (0)| 00:00:01 |       |
          |                                                                                                                          
    Predicate Information (identified by operation id):                                                                              
       1 - filter(TO_DATE('01-11-09','dd-mm-yy')<=TO_DATE('30-11-09','dd-mm-yy'))                                                    
       2 - access("P"."ITEM_ID"="I"."ITEM_ID")                                                                                       
       4 - filter("P"."PRETEST"=0)                                                                                                   
       5 - access("I"."ITEM_ID"="C"."ITEM_ID")                                                                                       
       6 - filter("I"."POOL_AVAILABILITY"='Y')                                                                                       
       7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0)                                                                                   
       9 - access("S"."INSTITUTION_ID"="E"."INSTITUTION_ID")                                                                         
      10 - filter(SUBSTR("E"."INSTITUTION_ID_DISPLAY",8,3)<>'000')                                                                   
      11 - access("S"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")                                                                       
      12 - filter(TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))>=TO_DATE('01-11-09','dd-mm-yy') AND "T"."TEST_SESSION_STATUS_ID"=3   
                  AND TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))<=TO_DATE('30-11-09','dd-mm-yy'))                                 
      14 - access("D"."TEST_NAME"='Reading Comprehension')                                                                           
      15 - access("T"."TEST_DETAIL_ID"="D"."TEST_DETAIL_ID")                                                                         
      18 - access("C"."TEST_SESSION_DETAIL_ID"="T"."TEST_SESSION_DETAIL_ID")                                                         
    43 rows selected.Edited by: user575115 on Dec 18, 2009 12:31 AM

    When you see something like ...
       7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0)                                                                                    It means that Oracle had to do a conversion for you since you aren't using the proper data type in your query.
    That would mean IF there is an index on that column, it won't be useable...

  • Sql Query Tuning. Please help me to tune this query

    Hi All ,
    I have this problematic Sql . It is taking huge time to execute. It contains a view CIDV, which i think is the bottleneck.
    I have pasted the query below. I will be pasting TKPROF and explain plan for the same. Please advice me to tune this query.
    SELECT GCC.SEGMENT1 || '.' || GCC.SEGMENT2 || '.' || GCC.SEGMENT3 || '.' ||
           GCC.SEGMENT4 || '.' || GCC.SEGMENT5 || '.' || GCC.SEGMENT6 || '.' ||
           GCC.SEGMENT7 || '.' || GCC.SEGMENT8 || '.' || GCC.SEGMENT9 OFFSET_ACCOUNT,
           OOD.ORGANIZATION_CODE,
           CIDV.SUBINVENTORY_CODE OFFSET_SUBINV,
           MIL.SEGMENT1 || '.' || MIL.SEGMENT2 || '.' || MIL.SEGMENT3 || '.' ||
           MIL.SEGMENT4 || '.' || MIL.SEGMENT5 OFFSET_LOCATOR,
           CIDV.LAST_UPDATE_LOGIN
      FROM APPS.CST_INV_DISTRIBUTION_V       CIDV,
           APPS.GL_CODE_COMBINATIONS         GCC,
           APPS.MTL_ITEM_LOCATIONS           MIL,
           APPS.ORG_ORGANIZATION_DEFINITIONS OOD
    WHERE CIDV.TRANSACTION_ID = :B2
       AND CIDV.PRIMARY_QUANTITY = (-1) * :B1
       AND CIDV.REFERENCE_ACCOUNT = GCC.CODE_COMBINATION_ID
       AND OOD.ORGANIZATION_ID = CIDV.ORGANIZATION_ID
       AND MIL.INVENTORY_LOCATION_ID = CIDV.LOCATOR_ID
       AND GCC.ACCOUNT_TYPE = 'A'****************
    TKPROF
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute  68337     10.32      10.32          0          0          0           0
    Fetch    68337    229.75     936.36      58819    6743323       1121       68232
    total   136675    240.07     946.69      58819    6743323       1121       68232
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 203     (recursive depth: 1)
    Number of plan statistics captured: 1
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
             1          1          1  MERGE JOIN CARTESIAN (cr=102 pr=15 pw=0 time=193608 us cost=56 size=219 card=1)
             1          1          1   NESTED LOOPS  (cr=100 pr=15 pw=0 time=193483 us cost=53 size=219 card=1)
             1          1          1    NESTED LOOPS  (cr=99 pr=15 pw=0 time=193407 us cost=52 size=215 card=1)
             1          1          1     NESTED LOOPS  (cr=96 pr=15 pw=0 time=193378 us cost=51 size=190 card=1)
             1          1          1      NESTED LOOPS  (cr=93 pr=15 pw=0 time=193284 us cost=49 size=162 card=1)
             1          1          1       NESTED LOOPS  (cr=89 pr=14 pw=0 time=185515 us cost=46 size=138 card=1)
             1          1          1        NESTED LOOPS  (cr=85 pr=12 pw=0 time=157975 us cost=44 size=81 card=1)
             1          1          1         NESTED LOOPS  (cr=83 pr=12 pw=0 time=157925 us cost=43 size=73 card=1)
             1          1          1          NESTED LOOPS  (cr=81 pr=12 pw=0 time=157641 us cost=43 size=132 card=2)
             1          1          1           VIEW  CST_INV_DISTRIBUTION_V (cr=78 pr=12 pw=0 time=156386 us cost=41 size=118 card=2)
             1          1          1            UNION-ALL  (cr=78 pr=12 pw=0 time=156378 us)
             0          0          0             NESTED LOOPS OUTER (cr=44 pr=9 pw=0 time=124997 us cost=20 size=291 card=1)
             0          0          0              NESTED LOOPS  (cr=44 pr=9 pw=0 time=124993 us cost=18 size=255 card=1)
             0          0          0               NESTED LOOPS  (cr=44 pr=9 pw=0 time=124990 us cost=18 size=251 card=1)
            33         33         33                MERGE JOIN CARTESIAN (cr=25 pr=6 pw=0 time=98544 us cost=14 size=192 card=1)
             1          1          1                 NESTED LOOPS OUTER (cr=22 pr=5 pw=0 time=85754 us cost=12 size=156 card=1)
             1          1          1                  NESTED LOOPS  (cr=19 pr=4 pw=0 time=79830 us cost=10 size=120 card=1)
             1          1          1                   NESTED LOOPS OUTER (cr=17 pr=4 pw=0 time=79813 us cost=9 size=113 card=1)
             1          1          1                    NESTED LOOPS  (cr=15 pr=4 pw=0 time=79752 us cost=8 size=106 card=1)
             1          1          1                     NESTED LOOPS  (cr=11 pr=2 pw=0 time=43120 us cost=6 size=93 card=1)
             1          1          1                      NESTED LOOPS  (cr=7 pr=2 pw=0 time=43087 us cost=4 size=83 card=1)
             1          1          1                       NESTED LOOPS  (cr=6 pr=2 pw=0 time=43072 us cost=4 size=80 card=1)
             1          1          1                        TABLE ACCESS BY INDEX ROWID MTL_MATERIAL_TRANSACTIONS (cr=5 pr=2 pw=0 time=43042 us cost=4 size=76 card=1)
             1          1          1                         INDEX UNIQUE SCAN MTL_MATERIAL_TRANSACTIONS_U1 (cr=4 pr=2 pw=0 time=43011 us cost=3 size=0 card=1)(object id 12484094)
             1          1          1                        INDEX UNIQUE SCAN MTL_TRANSACTION_TYPES_U1 (cr=1 pr=0 pw=0 time=20 us cost=0 size=764 card=191)(object id 9983)
             1          1          1                       INDEX UNIQUE SCAN MTL_TXN_SOURCE_TYPES_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=54 card=18)(object id 9987)
             1          1          1                      INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_B_U1 (cr=4 pr=0 pw=0 time=27 us cost=2 size=736324450 card=73632445)(object id 12484155)
             1          1          1                     INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_TL_U1 (cr=4 pr=2 pw=0 time=36626 us cost=2 size=957481070 card=73652390)(object id 12484137)
             1          1          1                    TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=42 us cost=1 size=3290 card=470)
             1          1          1                     INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=28 us cost=0 size=0 card=1)(object id 9847)
             1          1          1                   TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=12 us cost=1 size=3290 card=470)
             1          1          1                    INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=0 card=1)(object id 9847)
             0          0          0                  INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=1 pw=0 time=5915 us cost=2 size=36 card=1)(object id 705891)
            33         33         33                 BUFFER SORT (cr=3 pr=1 pw=0 time=12713 us cost=12 size=36 card=1)
            33         33         33                  INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=1 pw=0 time=12582 us cost=2 size=36 card=1)(object id 705891)
             0          0          0                TABLE ACCESS BY INDEX ROWID MTL_TRANSACTION_ACCOUNTS (cr=19 pr=3 pw=0 time=26591 us cost=4 size=59 card=1)
            66         66         66                 INDEX RANGE SCAN MTL_TRANSACTION_ACCOUNTS_N1 (cr=18 pr=2 pw=0 time=13607 us cost=3 size=0 card=3)(object id 12484127)
             0          0          0               INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=0 pr=0 pw=0 time=0 us cost=0 size=4 card=1)(object id 9847)
             0          0          0              INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=36 card=1)(object id 705891)
             1          1          1             NESTED LOOPS  (cr=34 pr=3 pw=0 time=31269 us cost=21 size=288 card=1)
             1          1          1              NESTED LOOPS  (cr=30 pr=3 pw=0 time=31161 us cost=19 size=275 card=1)
             1          1          1               NESTED LOOPS  (cr=26 pr=3 pw=0 time=31105 us cost=17 size=265 card=1)
             1          1          1                NESTED LOOPS  (cr=25 pr=3 pw=0 time=31082 us cost=17 size=261 card=1)
             1          1          1                 NESTED LOOPS OUTER (cr=23 pr=3 pw=0 time=31027 us cost=16 size=254 card=1)
             1          1          1                  NESTED LOOPS  (cr=21 pr=3 pw=0 time=30980 us cost=15 size=247 card=1)
             1          1          1                   NESTED LOOPS  (cr=20 pr=3 pw=0 time=30957 us cost=15 size=243 card=1)
             1          1          1                    NESTED LOOPS OUTER (cr=19 pr=3 pw=0 time=30926 us cost=15 size=240 card=1)
             1          1          1                     NESTED LOOPS  (cr=16 pr=3 pw=0 time=30389 us cost=13 size=204 card=1)
             1          1          1                      NESTED LOOPS  (cr=11 pr=0 pw=0 time=665 us cost=9 size=131 card=1)
             1          1          1                       NESTED LOOPS OUTER (cr=8 pr=0 pw=0 time=306 us cost=7 size=95 card=1)
             1          1          1                        TABLE ACCESS BY INDEX ROWID MTL_TRANSACTION_ACCOUNTS (cr=5 pr=0 pw=0 time=37 us cost=5 size=59 card=1)
             2          2          2                         INDEX RANGE SCAN MTL_TRANSACTION_ACCOUNTS_N1 (cr=4 pr=0 pw=0 time=17 us cost=4 size=0 card=3)(object id 12484127)
             1          1          1                        INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=216 us cost=2 size=36 card=1)(object id 705891)
             1          1          1                       INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=352 us cost=2 size=36 card=1)(object id 705891)
             1          1          1                      TABLE ACCESS BY INDEX ROWID MTL_MATERIAL_TRANSACTIONS (cr=5 pr=3 pw=0 time=29716 us cost=4 size=73 card=1)
             1          1          1                       INDEX RANGE SCAN MTL_MATERIAL_TRANSACTIONS_N23 (cr=4 pr=3 pw=0 time=29588 us cost=3 size=0 card=1)(object id 12484133)
             0          0          0                     INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=520 us cost=2 size=36 card=1)(object id 705891)
             1          1          1                    INDEX UNIQUE SCAN MTL_TXN_SOURCE_TYPES_U1 (cr=1 pr=0 pw=0 time=22 us cost=0 size=3 card=1)(object id 9987)
             1          1          1                   INDEX UNIQUE SCAN MTL_TRANSACTION_TYPES_U1 (cr=1 pr=0 pw=0 time=16 us cost=0 size=4 card=1)(object id 9983)
             1          1          1                  TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=34 us cost=1 size=7 card=1)
             1          1          1                   INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=19 us cost=0 size=0 card=1)(object id 9847)
             1          1          1                 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=44 us cost=1 size=7 card=1)
             1          1          1                  INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=14 us cost=0 size=0 card=1)(object id 9847)
             1          1          1                INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=13 us cost=0 size=4 card=1)(object id 9847)
             1          1          1               INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_B_U1 (cr=4 pr=0 pw=0 time=49 us cost=2 size=10 card=1)(object id 12484155)
             1          1          1              INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_TL_U1 (cr=4 pr=0 pw=0 time=96 us cost=2 size=13 card=1)(object id 12484137)
             1          1          1           TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=3 pr=0 pw=0 time=1246 us cost=1 size=7 card=1)
             1          1          1            INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=2 pr=0 pw=0 time=24 us cost=0 size=0 card=1)(object id 250158)
             1          1          1          INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=2 pr=0 pw=0 time=275 us cost=0 size=7 card=1)(object id 689101)
             1          1          1         TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=38 us cost=1 size=8 card=1)
             1          1          1          INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=15 us cost=0 size=0 card=1)(object id 9847)
             1          1          1        TABLE ACCESS BY INDEX ROWID GL_CODE_COMBINATIONS (cr=4 pr=2 pw=0 time=27531 us cost=2 size=57 card=1)
             1          1          1         INDEX UNIQUE SCAN GL_CODE_COMBINATIONS_U1 (cr=3 pr=1 pw=0 time=19925 us cost=1 size=0 card=1)(object id 51426)
             1          1          1       TABLE ACCESS BY INDEX ROWID MTL_ITEM_LOCATIONS (cr=4 pr=1 pw=0 time=7758 us cost=3 size=24 card=1)
             1          1          1        INDEX RANGE SCAN MTL_ITEM_LOCATIONS_U1 (cr=3 pr=0 pw=0 time=51 us cost=2 size=0 card=1)(object id 9761)
             1          1          1      TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=3 pr=0 pw=0 time=85 us cost=2 size=28 card=1)
             1          1          1       INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=29 us cost=1 size=0 card=2)(object id 5379798)
             1          1          1     TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=3 pr=0 pw=0 time=25 us cost=1 size=25 card=1)
             1          1          1      INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=11 us cost=1 size=0 card=1)(object id 5379798)
             1          1          1    INDEX FULL SCAN GL_SETS_OF_BOOKS_U2 (cr=1 pr=0 pw=0 time=69 us cost=1 size=4 card=1)(object id 1380842)
             1          1          1   BUFFER SORT (cr=2 pr=0 pw=0 time=110 us cost=55 size=0 card=1)
             1          1          1    TABLE ACCESS FULL FND_PRODUCT_GROUPS (cr=2 pr=0 pw=0 time=59 us cost=3 size=0 card=1)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      library cache lock                              2        0.00          0.00
      library cache pin                               2        0.00          0.00
      Disk file operations I/O                      249        0.00          0.00
      db file sequential read                     58819        2.61        714.28
      gc cr grant 2-way                            5198        0.16          4.52
      gc current grant busy                           1        0.00          0.00
      KJC: Wait for msg sends to complete           517        0.00          0.05
      library cache: mutex X                        433        0.01          0.04
      gc cr grant congested                          28        0.08          0.18
      latch: ges resource hash list                   5        0.00          0.00
      gc current block 2-way                        513        0.11          0.61
      gc current block congested                      2        0.00          0.00
      latch: gc element                              16        0.00          0.01
      latch: cache buffers chains                     4        0.00          0.00
      latch: object queue header operation            3        0.00          0.00
    ********************************************************************************

    Explain Plan for the query
    SELECT STATEMENT, GOAL = ALL_ROWS               Cost=56     Cardinality=1     Bytes=219
    MERGE JOIN CARTESIAN               Cost=56     Cardinality=1     Bytes=219
      NESTED LOOPS               Cost=53     Cardinality=1     Bytes=219
       NESTED LOOPS               Cost=52     Cardinality=1     Bytes=215
        NESTED LOOPS               Cost=51     Cardinality=1     Bytes=190
         NESTED LOOPS               Cost=49     Cardinality=1     Bytes=162
          NESTED LOOPS               Cost=46     Cardinality=1     Bytes=138
           NESTED LOOPS               Cost=44     Cardinality=1     Bytes=81
            NESTED LOOPS               Cost=43     Cardinality=1     Bytes=73
             NESTED LOOPS               Cost=43     Cardinality=2     Bytes=132
              VIEW     Object owner=APPS     Object name=CST_INV_DISTRIBUTION_V     Cost=41     Cardinality=2     Bytes=118
               UNION-ALL                         
                NESTED LOOPS OUTER               Cost=20     Cardinality=1     Bytes=291
                 NESTED LOOPS               Cost=18     Cardinality=1     Bytes=255
                  NESTED LOOPS               Cost=18     Cardinality=1     Bytes=251
                   MERGE JOIN CARTESIAN               Cost=14     Cardinality=1     Bytes=192
                    NESTED LOOPS OUTER               Cost=12     Cardinality=1     Bytes=156
                     NESTED LOOPS               Cost=10     Cardinality=1     Bytes=120
                      NESTED LOOPS OUTER               Cost=9     Cardinality=1     Bytes=113
                       NESTED LOOPS               Cost=8     Cardinality=1     Bytes=106
                        NESTED LOOPS               Cost=6     Cardinality=1     Bytes=93
                         NESTED LOOPS               Cost=4     Cardinality=1     Bytes=83
                          NESTED LOOPS               Cost=4     Cardinality=1     Bytes=80
                           TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_MATERIAL_TRANSACTIONS     Cost=4     Cardinality=1     Bytes=76
                            INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_MATERIAL_TRANSACTIONS_U1     Cost=3     Cardinality=1     
                           INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_TRANSACTION_TYPES_U1     Cost=0     Cardinality=191     Bytes=764
                          INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_TXN_SOURCE_TYPES_U1     Cost=0     Cardinality=18     Bytes=54
                         INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_SYSTEM_ITEMS_B_U1     Cost=2     Cardinality=73632445     Bytes=736324450
                        INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_SYSTEM_ITEMS_TL_U1     Cost=2     Cardinality=73652390     Bytes=957481070
                       TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_PARAMETERS     Cost=1     Cardinality=470     Bytes=3290
                        INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     
                      TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_PARAMETERS     Cost=1     Cardinality=470     Bytes=3290
                       INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     
                     INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                    BUFFER SORT               Cost=12     Cardinality=1     Bytes=36
                     INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                   TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_TRANSACTION_ACCOUNTS     Cost=4     Cardinality=1     Bytes=59
                    INDEX RANGE SCAN     Object owner=INV     Object name=MTL_TRANSACTION_ACCOUNTS_N1     Cost=3     Cardinality=3     
                  INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     Bytes=4
                 INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                NESTED LOOPS               Cost=21     Cardinality=1     Bytes=288
                 NESTED LOOPS               Cost=19     Cardinality=1     Bytes=275
                  NESTED LOOPS               Cost=17     Cardinality=1     Bytes=265
                   NESTED LOOPS               Cost=17     Cardinality=1     Bytes=261
                    NESTED LOOPS OUTER               Cost=16     Cardinality=1     Bytes=254
                     NESTED LOOPS               Cost=15     Cardinality=1     Bytes=247
                      NESTED LOOPS               Cost=15     Cardinality=1     Bytes=243
                       NESTED LOOPS OUTER               Cost=15     Cardinality=1     Bytes=240
                        NESTED LOOPS               Cost=13     Cardinality=1     Bytes=204
                         NESTED LOOPS               Cost=9     Cardinality=1     Bytes=131
                          NESTED LOOPS OUTER               Cost=7     Cardinality=1     Bytes=95
                           TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_TRANSACTION_ACCOUNTS     Cost=5     Cardinality=1     Bytes=59
                            INDEX RANGE SCAN     Object owner=INV     Object name=MTL_TRANSACTION_ACCOUNTS_N1     Cost=4     Cardinality=3     
                           INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                          INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                         TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_MATERIAL_TRANSACTIONS     Cost=4     Cardinality=1     Bytes=73
                          INDEX RANGE SCAN     Object owner=INV     Object name=MTL_MATERIAL_TRANSACTIONS_N23     Cost=3     Cardinality=1     
                        INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_LOOKUP_VALUES_U1     Cost=2     Cardinality=1     Bytes=36
                       INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_TXN_SOURCE_TYPES_U1     Cost=0     Cardinality=1     Bytes=3
                      INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_TRANSACTION_TYPES_U1     Cost=0     Cardinality=1     Bytes=4
                     TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_PARAMETERS     Cost=1     Cardinality=1     Bytes=7
                      INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     
                    TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_PARAMETERS     Cost=1     Cardinality=1     Bytes=7
                     INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     
                   INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     Bytes=4
                  INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_SYSTEM_ITEMS_B_U1     Cost=2     Cardinality=1     Bytes=10
                 INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_SYSTEM_ITEMS_TL_U1     Cost=2     Cardinality=1     Bytes=13
              TABLE ACCESS BY INDEX ROWID     Object owner=HR     Object name=HR_ALL_ORGANIZATION_UNITS     Cost=1     Cardinality=1     Bytes=7
               INDEX UNIQUE SCAN     Object owner=HR     Object name=HR_ORGANIZATION_UNITS_PK     Cost=0     Cardinality=1     
             INDEX UNIQUE SCAN     Object owner=HR     Object name=HR_ALL_ORGANIZATION_UNTS_TL_PK     Cost=0     Cardinality=1     Bytes=7
            TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_PARAMETERS     Cost=1     Cardinality=1     Bytes=8
             INDEX UNIQUE SCAN     Object owner=INV     Object name=MTL_PARAMETERS_U1     Cost=0     Cardinality=1     
           TABLE ACCESS BY INDEX ROWID     Object owner=GL     Object name=GL_CODE_COMBINATIONS     Cost=2     Cardinality=1     Bytes=57
            INDEX UNIQUE SCAN     Object owner=GL     Object name=GL_CODE_COMBINATIONS_U1     Cost=1     Cardinality=1     
          TABLE ACCESS BY INDEX ROWID     Object owner=INV     Object name=MTL_ITEM_LOCATIONS     Cost=3     Cardinality=1     Bytes=24
           INDEX RANGE SCAN     Object owner=INV     Object name=MTL_ITEM_LOCATIONS_U1     Cost=2     Cardinality=1     
         TABLE ACCESS BY INDEX ROWID     Object owner=HR     Object name=HR_ORGANIZATION_INFORMATION     Cost=2     Cardinality=1     Bytes=28
          INDEX RANGE SCAN     Object owner=HR     Object name=HR_ORGANIZATION_INFORMATIO_FK2     Cost=1     Cardinality=2     
        TABLE ACCESS BY INDEX ROWID     Object owner=HR     Object name=HR_ORGANIZATION_INFORMATION     Cost=1     Cardinality=1     Bytes=25
         INDEX RANGE SCAN     Object owner=HR     Object name=HR_ORGANIZATION_INFORMATIO_FK2     Cost=1     Cardinality=1     
       INDEX FULL SCAN     Object owner=GL     Object name=GL_SETS_OF_BOOKS_U2     Cost=1     Cardinality=1     Bytes=4
      BUFFER SORT               Cost=55     Cardinality=1     
       TABLE ACCESS FULL     Object owner=APPLSYS     Object name=FND_PRODUCT_GROUPS     Cost=3     Cardinality=1     

  • I want to be an OCA and i have a very short time for that

    Hello guys this is the same user who wanted to meet some OCA or to-be OCA on stockholm but it didn't work..
    Now if anyone can help me i have a very short time to clear my exam i am studying 6 hours a day i have taken off from my work for a month just to clear my test..i have read about 5 chapter now and getting things in my mind but i m not sure if just a book(OCA Oracle Database 11g: SQL Fundamentals I Exam Guide (Exam 1Z0-051)) will be enough or i have to buy some other stuff do we have some workbooks or help meterial or something ...help me guys i have only 3 weeks left ..
    I will highly appriciate the help from you guys ..i live in stockholm,sweden if anyone can give me number or something i wana call and ask few things ...kom igen stockholmare kontakta mig och hjälp mig hjälp din svensk bror hehe this message was for swedish helper he he

    Thanks for your concern M.r kamran well, i am doing OCA or certification for 11g i thought its the latest thing i am really new in this field and have no idea about this world..as you said that the book i m reading which is ...Oracle Database 11g: SQL Fundamentals I Exam Guide (Exam 1Z0-051)..you said that this is book is enough but the thing is i am not satisfied there are only one lab question and 10 MCQS after each chapter which is i think is not enough to clear the exam...so the problem is i need some material or work book any exam patern or something like that ..where to buy them or how will i get approach of these things? so please if anyone knows where to get those things and how..i will be so much thankfull ..

  • Query takes long time

    Hi, could anybody help to tune this query,
    select /*+ choose*/ r.com , r.tvalue,
    t_result.info(r.rt_id,r.rt_ver) rp
              from n_result r,
                 (select /*+ choose*/  rt_id, max(rt_ver) max_ver
                               from n_result
                               group by rt_id) re
         where  
         r.s_id = :p_eone
         and    
         r.stat != 'E'
         and
         r.con not in ('R','M')
            and    
         r.rt_id = re.rt_id
         and    
         r.rt_ver = re.max_veExplain Plan
    OPERATION                      OPTIONS                              COST CARDINALITY      BYTES OPTIMIZER      
    SELECT STATEMENT                                                   15417           9        837 HINT: CHOOSE
    HASH JOIN                                                          15417           9        837
    TABLE ACCESS                   BY INDEX ROWID                          5           9        603 ANALYZED       
    INDEX                          RANGE SCAN                              3           9            ANALYZED       
    VIEW                                                               15401     4829027  125554702
    SORT                           GROUP BY                            15401     4829027   48290270
    INDEX                          FULL SCAN                           15401     4916886   49168860 ANALYZED      

    some more information which i can give you,
    oracle version -8.1.7.4.0
    time taken - 4 minutes (same type of queries are more in the package so all together going more than 1 hr)
    and tkprof is
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.02       0.00          0          0          0           0
    Execute      1      0.00       0.01          0          0          0           0
    Fetch        2     61.55     198.77      38475      15406          2           5
    total        4     61.57     198.78      38475      15406          2           5
    Misses in library cache during parse: 1
    Optimizer mode: CHOOSE
    Parsing user id: 43 
    Rows     Row Source Operation
          5  HASH JOIN
          5   TABLE ACCESS BY INDEX ROWID N_RESULT
          6    INDEX RANGE SCAN (object id 24943)
    4829162   VIEW
    4829162    SORT GROUP BY
    4917021     INDEX FULL SCAN (object id 24892)Thanks

  • Sql query taking long time

    the below query is taking very long time.
    select /*+ PARALLEL(a,8) PARALLEL(b,8) */ a.personid,a.winning_id, b.questionid from
    winning_id_cleanup a , rm_personquestion b
    where a.personid = b.personid and (a.winning_id,b.questionid) not in
    (select /*+ PARALLEL(c,8) */ c.personid,c.questionid from rm_personquestion c where c.personid=a.winning_id);
    where the rm_personquestion table is having 45 million rows and winning_id_cleanup is having 1 million rows.
    please tell me how to tune this query?

    Please post u'r query at PL/SQL
    It's not for SQL and PL/SQL

  • Please tune this query.

    Hi Experts,
    My below query is taking long time.
    [code]SELECT FAX_LIST.*
        FROM (SELECT /*+ use_nl(fax, src)  */
                    ROW_NUMBER () OVER (ORDER BY fax.ID ASC NULLS FIRST) RN,
                     fax.ACCOUNT_TYPE,
                     fax.BU_FILE_LOCATION,
                     fax.COUNT_PAGES_RECEIVED,
                     NVL (fax.CUSTOMER_NAME, fax.SENDER_NAME) AS CUSTOMER_NAME,
                     fax.FAX_SOURCE,
                     fax.CUSTOMER_NUMBER,
                     fax.CUSTOMER_OMEGA_NUMBER,
                     fax.GENIFAX_RECIPIENT_ID,
                     fax.ID AS FAX_ID,
                     fax.DATE_RECEIVED AS FAX_RECEIVED,
                     fax.IS_LOCKED,
                     fax.LOCKED_BY,
                     fax.ORIGINATOR_CSI,
                     fax.MARGIN,
                     fax.PAYMENT_TYPE,
                     fax.PRIORITY_CODE,
                     fax.PRIORITY_VALUE,
                     FROM_TZ (fax.DATE_RECEIVED, 'UTC')
                        AT TIME ZONE fax.LOCAL_TZ_NAME
                        AS DATE_RECEIVED,
                     fax.SALES_PERSON,
                     fax.SENDER_EMAIL,
                     fax.SENDER_NAME,
                     fax.SUBJECT,
                     fax.WORKGROUP_ID,
                     fax.LOCKED_TIME,
                     src.DESCRIPTION,
                     src.FAX_NUMBER,
                     src.WORKFLOW_ID,
                     fax.CREATED_BY,
                     fax.CREATED_DATE,
                     fax.UPDATE_DATE,
                     fax.UPDATED_BY,
                     fax.RESERVED_BY,
                     fax.PRICE_TO_ORDER,
                     fax.SKU_COUNT_TO_ORDER,
                     NVL (ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).CHANGED_BY,
                        CASE
                           WHEN fax.LAST_TRANSITION_ID IS NULL
                                AND fax.GENIFAX_RECIPIENT_ID IS NOT NULL
                           THEN
                              'ORL FEEDER'
                           ELSE
                              'Admin'
                        END)
                        AS LAST_USER,
                     FROM_TZ (
                        NVL (ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).CHANGED_DATE,
                             fax.DATE_RECEIVED),
                        'UTC')
                        AT TIME ZONE fax.LOCAL_TZ_NAME
                        AS MOVE_DATETIME,
                     NVL (ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).REASON,
                          'Reroute')
                        AS MOVE_REASON,
                     NVL (
                        (SELECT fw.DESCRIPTION
                           FROM ORL.WORKGROUP_TRANSITION wt, ORL.WORKGROUP fw
                          WHERE wt.ID =
                                   ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).WORKGROUP_TRANSITION_ID
                                AND fw.ID = wt.CURRENT_WORKGROUP_ID),
                        CASE
                           WHEN fax.LAST_TRANSITION_ID IS NULL
                                AND fax.GENIFAX_RECIPIENT_ID IS NOT NULL
                           THEN
                              'ORL FEEDER STAGING'
                           ELSE
                              'N/A'
                        END)
                        AS OLD_STATUS,
                     (SELECT MAX (PURCHASE_ORDER_NUMBER)
                        FROM ORL.FAX_OFFER_DETAIL
                       WHERE FAX_ID = fax.ID)
                        AS MAXPO,
                     (SELECT CASE COUNT (PURCHASE_ORDER_NUMBER)
                                WHEN 0 THEN NULL
                                ELSE COUNT (PURCHASE_ORDER_NUMBER)
                             END
                                AS POCOUNT
                        FROM ORL.FAX_OFFER_DETAIL
                       WHERE FAX_ID = fax.ID)
                        AS POCOUNT,
                     (SELECT SUM (VALUE) AS ORDER_VALUE
                        FROM ORL.FAX_OFFER_DETAIL
                       WHERE FAX_ID = fax.ID)
                        AS ORDER_VALUE,
                     fax.SALESPERSON_NAME,
                     fax.GROUP_NAME,
                     fax.ROLE_NAME,
                     fax.EMAIL,
                     fax.SALES_CHANNEL
                FROM (SELECT fax.*,
                             map.ORACLE_TZ_NAME AS LOCAL_TZ_NAME,
                             ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).SALESPERSON_NAME
                                AS SALESPERSON_NAME,
                             ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).GROUP_NAME
                                AS GROUP_NAME,
                             ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).ROLE_NAME
                                AS ROLE_NAME,
                             ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).EMAIL
                                AS EMAIL,
                             ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).SALES_CHANNEL
                                AS SALES_CHANNEL
                        FROM APPS_GLOBAL.GLOBAL_BU_MAPPING map,
                             (SELECT *
                                FROM ORL.FAX_HEADER FH
                               WHERE FH.WORKGROUP_ID = 262) fax
                       WHERE map.GEDIS = 'Y'
                             AND map.BU_ID = (SELECT BUID
                                                FROM ORL.WORKGROUP
                                               WHERE ID = fax.WORKGROUP_ID)
                             AND ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).SALESPERSON_NAME =
                                    'A_CARRICK') fax,
                     (SELECT *
                        FROM ORL.FAX_SOURCE FS
                       WHERE FS.WORKFLOW_ID IN
                                (SELECT  /*+ CARDINALITY(t, 1) */
                                       TO_NUMBER (
                                           COLUMN_VALUE)
                                           AS COLUMN_VALUE
                                   FROM TABLE (
                                           SplitClob ('1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
            16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
            32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
            48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
            64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
            80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
            96, 97, 98', ',')) t)) src
               WHERE src.ID(+) = fax.FAX_SOURCE) FAX_LIST
       WHERE RN BETWEEN 1 AND 100
    ORDER BY RN ASC;[/code]
    In my query the following three functions are using.
    ORL.GET_FTH_WTR
    ORL.GET_SALESPERSON
    APPS_GLOBAL.SplitClob
    [code]CREATE OR REPLACE FUNCTION ORL.GET_FTH_WTR(p_LAST_TRANSITION_ID NUMBER)
            RETURN ORL.FTH_WTR_T
            DETERMINISTIC
        IS
            v_REASON nvarchar2(1024 char);
            v_WORKGROUP_TRANSITION_ID number;
            v_CHANGED_BY nvarchar2(64 char);
            v_CHANGED_DATE timestamp(6);
        BEGIN
        SELECT
            WTR.REASON,
            wtr.WORKGROUP_TRANSITION_ID,
            fth.CHANGED_BY,
            fth.CHANGED_DATE
        INTO
            v_REASON,
            v_WORKGROUP_TRANSITION_ID,
            v_CHANGED_BY,
            v_CHANGED_DATE
        FROM
            ORL.FAX_TRANSITION_HISTORY fth,
            ORL.WORKGROUP_TRANSITION_REASON wtr
        WHERE
             fth.ID = p_LAST_TRANSITION_ID
            AND wtr.ID(+) = fth.TRANSITION_REASON_ID;
        RETURN ORL.FTH_WTR_T(v_CHANGED_BY, v_CHANGED_DATE, v_REASON, v_WORKGROUP_TRANSITION_ID);
        EXCEPTION
            WHEN NO_DATA_FOUND THEN
            RETURN ORL.FTH_WTR_T(NULL, NULL, NULL, NULL);
        END GET_FTH_WTR;
    CREATE OR REPLACE function ORL.GET_SALESPERSON(ORG_ID number, SALESPERSON_ID number)
        return ORL.SALESPERSON_T
        deterministic
    is
        apps_bu             varchar2(30);
        salesperson_name    varchar2(150 char);
        email               varchar2(70 char);
        sales_channel       varchar2(60 char);
        role_name           varchar2(60 char);
        group_name          varchar2(60 char);
    begin
        select OWNER_NAME into apps_bu
          from APPS_GLOBAL.GLOBAL_BU_MAPPING
         where ORG_ID = GET_SALESPERSON.ORG_ID;
        execute immediate
        replace('
            select SALESPERSON_NAME
                 , EMAIL
                 , SALES_CHANNEL
                 , ROLE_NAME
                 , GROUP_NAME
              from APPS_**.ORL_ACTIVE_SALESPERSON
             where SALESPERSON_ID = :1
      and  rownum = 1
                ', 'APPS_**', apps_bu)
        into salesperson_name, email, sales_channel, role_name, group_name
        using SALESPERSON_ID;
        return SALESPERSON_T(ORG_ID, SALESPERSON_ID, salesperson_name, email, sales_channel, role_name, group_name);
    exception
        when no_data_found then
            return SALESPERSON_T(null, null, null, null, null, null, null);
    end GET_SALESPERSON;
    CREATE OR REPLACE function APPS_GLOBAL.SplitClob
        p_clob          clob
      , p_delimiter     varchar2 := ','
    return StringTable
    deterministic
    pipelined
    as
        v_current_pos   pls_integer := 1;
        v_delimiter_pos pls_integer;
    begin
        if (p_clob is not NULL) and (p_delimiter is not NULL) then
            while v_current_pos <= length(p_clob) loop
                v_delimiter_pos := instr(p_clob, p_delimiter, v_current_pos);
                if  v_delimiter_pos < 1  then   -- no more delimiters
                    v_delimiter_pos := length(p_clob) + 1;
                end if;
                pipe row( to_char( substr(p_clob,
                                          v_current_pos,
                                          v_delimiter_pos - v_current_pos) ) );
                v_current_pos := v_delimiter_pos + length(p_delimiter);
            end loop;
        end if;
    end SplitClob;
    CREATE OR REPLACE TYPE SALESPERSON_T  AS OBJECT
      SALESPERSON_ID        number(15)
    , SALESPERSON_NUMBER    varchar2(150 char)
    , FIRST_NAME            varchar2(20 char)
    , LAST_NAME             varchar2(40 char)
    , SALES_CHANNEL         varchar2(60 char)
    , ORG_ID                number(15)
    , USER_NAME             varchar2(61 char)
    , EFFECTIVE_START_DATE  date
    , EFFECTIVE_END_DATE    date
    , STATUS_FLAG           varchar2(1 char)
    , EMAIL                 varchar2(70 char)
    , WORK_TELEPHONE        varchar2(60 char)
    , MANAGERS_NAME         varchar2(50 char)
    , FAX_NO                varchar2(60 char)
    , SALESPERSON_NAME      varchar2(30 char)
    , TERRITORY             varchar2(40 char)
    , FO_LOGON              varchar2(150 char)
    , BO_LOGON              varchar2(150 char)
    , SUB_CHANNEL           varchar2(25 char)
    , BUSINESS_SEGMENT      varchar2(3 char)
    , DISCOUNT_NAME         varchar2(30 char)
    , RESPONSIBILITY_ID     number
    , RESPONSIBILITY_KEY    varchar2(30 char)
    CREATE OR REPLACE TYPE STRINGTABLE as table of varchar2(4000);[/code]
    The total number of records in each table.
    [code]SELECT COUNT(*) FROM ORL.FAX_HEADER FH --4397829
    SELECT COUNT(*) FROM APPS_GLOBAL.GLOBAL_BU_MAPPING map --31
    SELECT COUNT(*) FROM ORL.WORKGROUP_TRANSITION  --6735
    SELECT COUNT(*) FROM ORL.WORKGROUP fw --1495
    SELECT COUNT(*) FROM ORL.FAX_OFFER_DETAIL --5904039
    SELECT COUNT(*) FROM  ORL.FAX_SOURCE--2368 --2457[/code]
    Indexes on the columns.
    [code]ORL.WORKGROUP_TRANSITION(ID),
    ORL.WORKGROUP(ID),
    ORL.FAX_OFFER_DETAIL(FAX_ID),
    ORL.FAX_HEADER(WORKGROUP_ID).[/code]
    Please help me to tune this query.
    Thanks in advance.

    Hi,
    Thanks for your reply.
    For split the numbers into different rows , we are sending randomly.
    It's not constant numbers.We have used bind variables.
    For testing purpose I have hard coded the values.
    How to do this split without using user defined function.
    I am sending the actual query along with execution plan without any hints.
    [code]SELECT   FAX_LIST.*
      FROM   (SELECT   ROW_NUMBER () OVER (ORDER BY fax.ID ASC) RN,
                       fax.ACCOUNT_TYPE,
                       fax.BU_FILE_LOCATION,
                       fax.COUNT_PAGES_RECEIVED,
                       NVL (fax.CUSTOMER_NAME, fax.SENDER_NAME) AS CUSTOMER_NAME,
                       fax.FAX_SOURCE,
                       fax.CUSTOMER_NUMBER,
                       fax.CUSTOMER_OMEGA_NUMBER,
                       fax.GENIFAX_RECIPIENT_ID,
                       fax.ID AS FAX_ID,
                       fax.DATE_RECEIVED AS FAX_RECEIVED,
                       fax.IS_LOCKED,
                       fax.LOCKED_BY,
                       fax.ORIGINATOR_CSI,
                       fax.MARGIN,
                       fax.PAYMENT_TYPE,
                       fax.PRIORITY_CODE,
                       fax.PRIORITY_VALUE,
                       FROM_TZ (fax.DATE_RECEIVED, 'UTC') AT TIME ZONE map.ORACLE_TZ_NAME AS DATE_RECEIVED,
                       fax.SALES_PERSON,
                       fax.SENDER_EMAIL,
                       fax.SENDER_NAME,
                       fax.SUBJECT,
                       fax.WORKGROUP_ID,
                       fax.LOCKED_TIME,
                       src.DESCRIPTION,
                       src.FAX_NUMBER,
                       src.WORKFLOW_ID,
                       fax.CREATED_BY,
                       fax.CREATED_DATE,
                       fax.UPDATE_DATE,
                       fax.UPDATED_BY,
                       fax.RESERVED_BY,
                       fax.PRICE_TO_ORDER,
                       fax.SKU_COUNT_TO_ORDER,
                       NVL (
                          ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).CHANGED_BY,
                          CASE
                             WHEN fax.LAST_TRANSITION_ID IS NULL
                                  AND fax.GENIFAX_RECIPIENT_ID IS NOT NULL
                             THEN
                                'ORL FEEDER'
                             ELSE
                                'Admin'
                          END
                          AS LAST_USER,
                       FROM_TZ (NVL (ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).CHANGED_DATE,fax.DATE_RECEIVED),'UTC')
                       AT TIME ZONE map.ORACLE_TZ_NAME AS MOVE_DATETIME,
                       NVL (ORL.GET_FTH_WTR (fax.LAST_TRANSITION_ID).REASON,'Reroute')AS MOVE_REASON,
                       NVL ((SELECT   fw.DESCRIPTION
                             FROM   ORL.WORKGROUP_TRANSITION wt, ORL.WORKGROUP fw
                            WHERE   wt.ID =
                                       ORL.GET_FTH_WTR (
                                          fax.LAST_TRANSITION_ID
                                       ).WORKGROUP_TRANSITION_ID
                                    AND fw.ID = wt.CURRENT_WORKGROUP_ID),
                          CASE
                             WHEN fax.LAST_TRANSITION_ID IS NULL
                                  AND fax.GENIFAX_RECIPIENT_ID IS NOT NULL
                             THEN
                                'ORL FEEDER STAGING'
                             ELSE
                                'N/A'
                          END
                          AS OLD_STATUS,
                       (SELECT   MAX (PURCHASE_ORDER_NUMBER)
                          FROM   ORL.FAX_OFFER_DETAIL
                         WHERE   FAX_ID = fax.ID)
                          AS MAXPO,
                       (SELECT   CASE COUNT (PURCHASE_ORDER_NUMBER)
                                    WHEN 0 THEN NULL
                                    ELSE COUNT (PURCHASE_ORDER_NUMBER)
                                 END
                                    AS POCOUNT
                          FROM   ORL.FAX_OFFER_DETAIL
                         WHERE   FAX_ID = fax.ID)
                          AS POCOUNT,
                       (SELECT   SUM (VALUE) AS ORDER_VALUE
                          FROM   ORL.FAX_OFFER_DETAIL
                         WHERE   FAX_ID = fax.ID) AS ORDER_VALUE,
                       ORL.GET_SALESPERSON (map.ORG_ID,fax.SALES_PERSON).SALESPERSON_NAME AS SALESPERSON_NAME,
                       ORL.GET_SALESPERSON (map.ORG_ID,fax.SALES_PERSON).GROUP_NAME AS GROUP_NAME,
                       ORL.GET_SALESPERSON (map.ORG_ID,fax.SALES_PERSON).ROLE_NAME AS ROLE_NAME,
                       ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).EMAIL AS EMAIL,
                       ORL.GET_SALESPERSON (map.ORG_ID, fax.SALES_PERSON).SALES_CHANNEL AS SALES_CHANNEL
                FROM   ORL.FAX_HEADER fax,
                       APPS_GLOBAL.GLOBAL_BU_MAPPING map,
                       ORL.FAX_SOURCE src
               WHERE       fax.WORKGROUP_ID = :WORKGROUP_ID
                       AND map.GEDIS = 'Y'
                       AND map.BU_ID = (SELECT   BUID
                                          FROM   ORL.WORKGROUP
                                         WHERE   ID = fax.WORKGROUP_ID)
                       AND ORL.GET_SALESPERSON (map.ORG_ID,fax.SALES_PERSON).GROUP_NAME =:SALES_TEAM
                       AND ORL.GET_SALESPERSON (map.ORG_ID,fax.SALES_PERSON
                          ).SALESPERSON_NAME = :SALESPERSON_NAME
                       AND src.WORKFLOW_ID IN
                                (SELECT TO_NUMBER (COLUMN_VALUE) AS COLUMN_VALUE
                                   FROM table(SplitClob (:WORKFLOW_ID,:WORKFLOW_ID_delim)) t)
                       AND src.ID(+) = fax.FAX_SOURCE) FAX_LIST
    WHERE   RN BETWEEN 1 AND 100;
    Execution Plan
    | Id  | Operation                               | Name                    | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT                        |                         |     2 | 12092 | 88923   (1)|
    |   1 |  NESTED LOOPS                           |                         |     1 |    38 |     3   (0)|
    |   2 |   TABLE ACCESS BY INDEX ROWID           | WORKGROUP_TRANSITION    |     1 |     9 |     2   (0)|
    |   3 |    INDEX UNIQUE SCAN                    | PK_WORKGROUP_TRANSITION |     1 |       |     1   (0)|
    |   4 |   TABLE ACCESS BY INDEX ROWID           | WORKGROUP               |  1482 | 42978 |     1   (0)|
    |   5 |    INDEX UNIQUE SCAN                    | PK_WORKGROUP            |     1 |       |     0   (0)|
    |   6 |  SORT AGGREGATE                         |                         |     1 |    16 |            |
    |   7 |   TABLE ACCESS BY INDEX ROWID           | FAX_OFFER_DETAIL        |     1 |    16 |     5   (0)|
    |   8 |    INDEX RANGE SCAN                     | FAX_OFFER_DETAIL_IDX1   |     1 |       |     3   (0)|
    |   9 |  SORT AGGREGATE                         |                         |     1 |    16 |            |
    |  10 |   TABLE ACCESS BY INDEX ROWID           | FAX_OFFER_DETAIL        |     1 |    16 |     5   (0)|
    |  11 |    INDEX RANGE SCAN                     | FAX_OFFER_DETAIL_IDX1   |     1 |       |     3   (0)|
    |  12 |  SORT AGGREGATE                         |                         |     1 |    11 |            |
    |  13 |   TABLE ACCESS BY INDEX ROWID           | FAX_OFFER_DETAIL        |     1 |    11 |     5   (0)|
    |  14 |    INDEX RANGE SCAN                     | FAX_OFFER_DETAIL_IDX1   |     1 |       |     3   (0)|
    |  15 |  VIEW                                   |                         |     2 | 12092 | 88923   (1)|
    |  16 |   WINDOW SORT PUSHED RANK               |                         |     2 |  1378 | 88923   (1)|
    |  17 |    NESTED LOOPS                         |                         |       |       |            |
    |  18 |     NESTED LOOPS                        |                         |     2 |  1378 | 88920   (1)|
    |  19 |      NESTED LOOPS                       |                         | 18420 |    11M| 70490   (1)|
    |  20 |       HASH JOIN RIGHT SEMI              |                         |    69 |  3657 |    49   (3)|
    |  21 |        COLLECTION ITERATOR PICKLER FETCH| SPLITCLOB               |  8168 | 16336 |    29   (0)|
    |  22 |        TABLE ACCESS FULL                | FAX_SOURCE              |  2409 |   119K|    19   (0)|
    |  23 |       TABLE ACCESS BY INDEX ROWID       | FAX_HEADER              |   268 |   160K|  2854   (1)|
    |  24 |        INDEX RANGE SCAN                 | FAX_HEADER_FS_IDX       |  4345 |       |     7   (0)|
    |  25 |      INDEX RANGE SCAN                   | GLOBAL_BU_MAPPING_BUID  |     1 |       |     0   (0)|
    |  26 |       TABLE ACCESS BY INDEX ROWID       | WORKGROUP               |     1 |     8 |     2   (0)|
    |  27 |        INDEX UNIQUE SCAN                | PK_WORKGROUP            |     1 |       |     1   (0)|
    |  28 |     TABLE ACCESS BY INDEX ROWID         | GLOBAL_BU_MAPPING       |     1 |    24 |     1   (0)|
    Note
       - 'PLAN_TABLE' is old version
    Statistics
         894400  recursive calls
             60  db block gets
        7402741  consistent gets
              0  physical reads
              0  redo size
          46309  bytes sent via SQL*Net to client
            430  bytes received via SQL*Net from client
              8  SQL*Net roundtrips to/from client
         848304  sorts (memory)
              0  sorts (disk)
            100  rows processed[/code]
    Please help me.
    Thanks in advance.

  • Need to tune insert query

    Hi,
    I'm using below query inside the procedure.I need to tune this query as it is taking more time for execution.Could you some help on this
    *version.*
    10.2.0
    Query
    INSERT INTO  TEMP_TEST_STAT(
                SELECT S.STUDENT_ID_PK, A.RESPONSE_KEY GENDER, B.RESPONSE_KEY ETHNICITY, T.SCORE SCALE_SCORE ,D.TEST_NAME
                FROM TEST_SESSION_DETAIL T, TEST_SESSION S, STUDENT U, TEST_DETAIL D,
                SELECT I.ITEM_ID, I.UIN, BG.BG_SESSION_DETAIL_ID, BG.RESPONSE_KEY , B.TEST_SESSION_ID, C.STUDENT_ID_PK
                FROM BG_QUESTION_USER_RESPONSE BG, ITEM I, BG_SESSION_DETAIL B, TEST_SESSION C
                WHERE
                BG.ITEM_ID = I.ITEM_ID AND I.UIN = 'SBG002' AND
                BG.BG_SESSION_DETAIL_ID = B.BG_SESSION_DETAIL_ID
                AND B.TEST_SESSION_ID = C.TEST_SESSION_ID ) A,
                SELECT I.ITEM_ID, I.UIN, BG.BG_SESSION_DETAIL_ID, BG.RESPONSE_KEY , B.TEST_SESSION_ID, C.STUDENT_ID_PK
                FROM BG_QUESTION_USER_RESPONSE BG, ITEM I, BG_SESSION_DETAIL B, TEST_SESSION C
                WHERE
                BG.ITEM_ID = I.ITEM_ID AND I.UIN = 'SBG001' AND
                BG.BG_SESSION_DETAIL_ID = B.BG_SESSION_DETAIL_ID
                AND B.TEST_SESSION_ID = C.TEST_SESSION_ID ) B
                ,INSTITUTION E
                WHERE
                D.TEST_NAME = 'Reading Comprehension' AND
                T.TEST_SESSION_STATUS_ID = 3
                AND TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-09-09','DD-MON-YY') AND TO_DATE('30-09-09','DD-MON-YY')
                AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
                AND S.STUDENT_ID_PK = U.STUDENT_ID_PK
                AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND A.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND A.STUDENT_ID_PK = S.STUDENT_ID_PK
                AND B.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND B.STUDENT_ID_PK = S.STUDENT_ID_PK
                AND S.INSTITUTION_ID=E.INSTITUTION_ID
                AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3) <> '000');
    Explain plan
    PLAN_TABLE_OUTPUT
    Plan hash value: 790379856
    | Id  | Operation                                      | Name                         | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    |   0 | INSERT STATEMENT                               |                              |     1 |   204 |  1567   (1)| 00:00:19 |       |       |
    |*  1 |  FILTER                                        |                              |       |       |            |          |       |       |
    |   2 |   NESTED LOOPS                                 |                              |     1 |   204 |  1567   (1)| 00:00:19 |       |       |
    |   3 |    NESTED LOOPS                                |                              |     1 |   189 |  1566   (1)| 00:00:19 |       |       |
    |   4 |     NESTED LOOPS                               |                              |     1 |   167 |  1561   (1)| 00:00:19 |       |       |
    |   5 |      NESTED LOOPS                              |                              |     1 |   155 |  1560   (1)| 00:00:19 |       |       |
    |   6 |       NESTED LOOPS                             |                              |     1 |   143 |  1556   (1)| 00:00:19 |       |       |
    |   7 |        NESTED LOOPS                            |                              |     1 |   128 |  1555   (1)| 00:00:19 |       |       |
    |   8 |         NESTED LOOPS                           |                              |     1 |   106 |  1550   (1)| 00:00:19 |       |       |
    |   9 |          NESTED LOOPS                          |                              |   186 | 17484 |  1364   (1)| 00:00:17 |       |       |
    |* 10 |           HASH JOIN                            |                              |    86 |  7052 |  1020   (1)| 00:00:13 |       |       |
    |  11 |            NESTED LOOPS                        |                              |    86 |  5848 |  1002   (1)| 00:00:13 |       |       |
    |* 12 |             HASH JOIN                          |                              |    86 |  4472 |   916   (1)| 00:00:11 |       |       |
    |* 13 |              INDEX RANGE SCAN                  | TEST_DETAIL_AK_1             |     1 |    21 |     2   (0)| 00:00:01 |       |       |
    |* 14 |              TABLE ACCESS BY GLOBAL INDEX ROWID| TEST_SESSION_DETAIL          |  8549 |   258K|   914   (1)| 00:00:11 | ROWID | ROWID |
    |* 15 |               INDEX RANGE SCAN                 | TEST_END_DATE_IDX            | 15672 |       |    53   (0)| 00:00:01 |       |       |
    |  16 |             PARTITION HASH ITERATOR            |                              |     1 |    16 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |  17 |              TABLE ACCESS BY LOCAL INDEX ROWID | TEST_SESSION                 |     1 |    16 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 18 |               INDEX UNIQUE SCAN                | PK_TEST_SESSION              |     1 |       |     0   (0)| 00:00:01 |   KEY |   KEY |
    |* 19 |            INDEX FAST FULL SCAN                | INSTI_ID_NAME_COUN_DISP_IDX  |  5930 | 83020 |    17   (0)| 00:00:01 |       |       |
    |  20 |           TABLE ACCESS BY GLOBAL INDEX ROWID   | BG_SESSION_DETAIL            |     2 |    24 |     4   (0)| 00:00:01 | ROWID | ROWID |
    |* 21 |            INDEX RANGE SCAN                    | BG_SESS_DETAIL_TEST_SE_FK1_I |     2 |       |     2   (0)| 00:00:01 |       |       |
    |  22 |          PARTITION HASH ITERATOR               |                              |     1 |    12 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 23 |           TABLE ACCESS BY LOCAL INDEX ROWID    | TEST_SESSION                 |     1 |    12 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 24 |            INDEX UNIQUE SCAN                   | PK_TEST_SESSION              |     1 |       |     0   (0)| 00:00:01 |   KEY |   KEY |
    |  25 |         TABLE ACCESS BY GLOBAL INDEX ROWID     | BG_QUESTION_USER_RESPONSE    |     4 |    88 |     5   (0)| 00:00:01 | ROWID | ROWID |
    |* 26 |          INDEX RANGE SCAN                      | BG_QUESTION_USER_RESP_IDX1   |     4 |       |     2   (0)| 00:00:01 |       |       |
    |  27 |        PARTITION HASH ITERATOR                 |                              |     1 |    15 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 28 |         TABLE ACCESS BY LOCAL INDEX ROWID      | ITEM                         |     1 |    15 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 29 |          INDEX UNIQUE SCAN                     | PK_ITEM                      |     1 |       |     0   (0)| 00:00:01 |   KEY |   KEY |
    |  30 |       TABLE ACCESS BY GLOBAL INDEX ROWID       | BG_SESSION_DETAIL            |     2 |    24 |     4   (0)| 00:00:01 | ROWID | ROWID |
    |* 31 |        INDEX RANGE SCAN                        | BG_SESS_DETAIL_TEST_SE_FK1_I |     2 |       |     2   (0)| 00:00:01 |       |       |
    |  32 |      PARTITION HASH ITERATOR                   |                              |     1 |    12 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 33 |       TABLE ACCESS BY LOCAL INDEX ROWID        | TEST_SESSION                 |     1 |    12 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 34 |        INDEX UNIQUE SCAN                       | PK_TEST_SESSION              |     1 |       |     0   (0)| 00:00:01 |   KEY |   KEY |
    |  35 |     TABLE ACCESS BY GLOBAL INDEX ROWID         | BG_QUESTION_USER_RESPONSE    |     4 |    88 |     5   (0)| 00:00:01 | ROWID | ROWID |
    |* 36 |      INDEX RANGE SCAN                          | BG_QUESTION_USER_RESP_IDX1   |     4 |       |     2   (0)| 00:00:01 |       |       |
    |  37 |    PARTITION HASH ITERATOR                     |                              |     1 |    15 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 38 |     TABLE ACCESS BY LOCAL INDEX ROWID          | ITEM                         |     1 |    15 |     1   (0)| 00:00:01 |   KEY |   KEY |
    |* 39 |      INDEX UNIQUE SCAN                         | PK_ITEM                      |     1 |       |     0   (0)| 00:00:01 |   KEY |   KEY |
    Predicate Information (identified by operation id):
       1 - filter(TO_DATE('01-09-09','DD-MON-YY')<=TO_DATE('30-09-09','DD-MON-YY'))
      10 - access("S"."INSTITUTION_ID"="E"."INSTITUTION_ID")
      12 - access("T"."TEST_DETAIL_ID"="D"."TEST_DETAIL_ID")
      13 - access("D"."TEST_NAME"='Reading Comprehension')
      14 - filter("T"."TEST_SESSION_STATUS_ID"=3)
      15 - access(TRUNC(INTERNAL_FUNCTION("TEST_END_DATE"))>=TO_DATE('01-09-09','DD-MON-YY') AND
                  TRUNC(INTERNAL_FUNCTION("TEST_END_DATE"))<=TO_DATE('30-09-09','DD-MON-YY'))
      18 - access("S"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
      19 - filter(SUBSTR("E"."INSTITUTION_ID_DISPLAY",8,3)<>'000')
      21 - access("B"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
      23 - filter("C"."STUDENT_ID_PK"="S"."STUDENT_ID_PK")
      24 - access("B"."TEST_SESSION_ID"="C"."TEST_SESSION_ID")
      26 - access("BG"."BG_SESSION_DETAIL_ID"="B"."BG_SESSION_DETAIL_ID")
      28 - filter("I"."UIN"='SBG001')
      29 - access("BG"."ITEM_ID"="I"."ITEM_ID")
      31 - access("B"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
      33 - filter("C"."STUDENT_ID_PK"="S"."STUDENT_ID_PK")
      34 - access("B"."TEST_SESSION_ID"="C"."TEST_SESSION_ID")
      36 - access("BG"."BG_SESSION_DETAIL_ID"="B"."BG_SESSION_DETAIL_ID")
      38 - filter("I"."UIN"='SBG002')
      39 - access("BG"."ITEM_ID"="I"."ITEM_ID")

    Rob,
    How i can my insert statement here.
    I tried like..but error.
    select /*+ gather_plan_statistics */  INSERT INTO  TEMP_TEST_STAT(
                SELECT S.STUDENT_ID_PK, A.RESPONSE_KEY GENDER, B.RESPONSE_KEY ETHNICITY, T.SCORE SCALE_SCORE ,D.TEST_NAME
                FROM TEST_SESSION_DETAIL T, TEST_SESSION S, STUDENT U, TEST_DETAIL D,
                SELECT I.ITEM_ID, I.UIN, BG.BG_SESSION_DETAIL_ID, BG.RESPONSE_KEY , B.TEST_SESSION_ID, C.STUDENT_ID_PK
                FROM BG_QUESTION_USER_RESPONSE BG, ITEM I, BG_SESSION_DETAIL B, TEST_SESSION C
                WHERE
                BG.ITEM_ID = I.ITEM_ID AND I.UIN = 'SBG002' AND
                BG.BG_SESSION_DETAIL_ID = B.BG_SESSION_DETAIL_ID
                AND B.TEST_SESSION_ID = C.TEST_SESSION_ID ) A,
                SELECT I.ITEM_ID, I.UIN, BG.BG_SESSION_DETAIL_ID, BG.RESPONSE_KEY , B.TEST_SESSION_ID, C.STUDENT_ID_PK
                FROM BG_QUESTION_USER_RESPONSE BG, ITEM I, BG_SESSION_DETAIL B, TEST_SESSION C
                WHERE
                BG.ITEM_ID = I.ITEM_ID AND I.UIN = 'SBG001' AND
                BG.BG_SESSION_DETAIL_ID = B.BG_SESSION_DETAIL_ID
                AND B.TEST_SESSION_ID = C.TEST_SESSION_ID ) B
                ,INSTITUTION E
                WHERE
                D.TEST_NAME = 'Reading Comprehension' AND
                T.TEST_SESSION_STATUS_ID = 3
                AND TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-09-09','DD-MON-YY') AND TO_DATE('30-09-09','DD-MON-YY')
                AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
                AND S.STUDENT_ID_PK = U.STUDENT_ID_PK
                AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND A.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND A.STUDENT_ID_PK = S.STUDENT_ID_PK
                AND B.TEST_SESSION_ID = T.TEST_SESSION_ID
                AND B.STUDENT_ID_PK = S.STUDENT_ID_PK
                AND S.INSTITUTION_ID=E.INSTITUTION_ID
                AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3)  '000') from dual;please advice

  • How to tune the query...?

    Hi all,
    I am having a table with millions of records and the query is taking hours
    time. How to tune the query apart from doing the following things.
    1. Creating or Deleting indexes.
    2. Using Bind variables.
    3. Using Hints.
    4. Updating the Statitics regurarly.
    Actually, i have asked this question in interview how to tune the query.
    I told him the above 4 things. Then he told, these are not working, then
    how you will tune this query.
    Thanks in advance,
    Pal

    user546710 wrote:
    Actually, i have asked this question in interview how to tune the query.
    I told him the above 4 things. Then he told, these are not working, then
    how you will tune this query.It actually depends on the scenario/problem given.
    You may want to read this first.
    When your query takes too long ...
    When your query takes too long ...
    HOW TO: Post a SQL statement tuning request - template posting
    HOW TO: Post a SQL statement tuning request - template posting

  • Guide me to tune the query

    Hi All,
    I need to tune the query which is taking more than 1 hour to execute over 8 Lakhs of record.
    SQL> explain plan for SELECT C.aci_cust_code      cust_code,
    2 C.aci_cust_name cust_name,
    3      R.NAME ruledefination,
    4 B.RULECODE ALERTS,
    5 A.custom1 tran_id,
    6 TD_get_value('AMLTRANTYPE', RTRIM(A.custom17)) trantype,
    7 A.CUSTOM18 tran_nature,
    8 A.custom25 tran_date,
    9 A.messageno messageno,
    10 TD_get_value('AMLTRANSTATUS', A.status) msgstatus,
    11 D.acai_acct_type acct_type,
    12 A.custom19 acct_number,
    13 A.CURRENCY CURRENCY,
    14 A.priorityamount amount,
    15 A.operator USERNAME,
    16 A.msgdb_id msgdb_id,
    17 A.msg_mode_in msg_mode_in
    18 FROM MSGDB A,
    19 MSGALERTS B,
    20 AML_CUST_INFO C,
    21      AML_CUST_ACC_INFO D,
    22 RULETBL2 R,
    23           (SELECT tdkey FROM tabledetails WHERE tdidcode = 'AML-INCLUDEQ' ) amlqueues
    24 WHERE A.msgdb_id = B.msgdb_id AND
    25 A.queueid = amlqueues.tdkey AND
    26           A.MSG_MODE_IN = 'AML-TRANS' AND
    27 A.custom15 = C.aci_cust_code AND
    28 A.CUSTOM19=D.ACAI_ACCT_NUMBER(+) AND
    29 TO_CHAR(A.custom25,'YYYYMMDD') BETWEEN
    30      TO_CHAR(TO_DATE('2011/01/01','YYYY/MM/DD'),'YYYYMMDD')
    31 AND TO_CHAR(TO_DATE('2011/01/31','YYYY/MM/DD'),'YYYYMMDD')
    32 AND B.RULECODE = R.RULECODE
    33 ORDER BY A.custom25, msgdb_id,B.rulecode;
    Explained.
    PLAN_TABLE_OUTPUT
    Plan hash value: 1081661146
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 173K| 30M| | 12697 (2)| 00:02:33 |
    | 1 | SORT ORDER BY | | 173K| 30M| 66M| 12697 (2)| 00:02:33 |
    |* 2 | HASH JOIN | | 173K| 30M| | 5580 (4)| 00:01:07 |
    | 3 | VIEW | index$_join$_005 | 3395 | 81480 | | 42 (3)| 00:00:01 |
    |* 4 | HASH JOIN | | | | | | |
    | 5 | INDEX FAST FULL SCAN | IDX_RCODE | 3395 | 81480 | | 10 (0)| 00:00:01 |
    | 6 | INDEX FAST FULL SCAN | SYS_C0040836 | 3395 | 81480 | | 31 (0)| 00:00:01 |
    |* 7 | HASH JOIN | | 1737 | 276K| | 5534 (4)| 00:01:07 |
    |* 8 | HASH JOIN | | 559 | 86645 | | 4575 (3)| 00:00:55 |
    |* 9 | HASH JOIN OUTER | | 448 | 56000 | | 4463 (3)| 00:00:54 |
    | 10 | NESTED LOOPS | | 448 | 47040 | | 4404 (3)| 00:00:53 |
    |* 11 | TABLE ACCESS BY INDEX ROWID| MSGDB | 451 | 35178 | | 4403 (3)| 00:00:53 |
    |* 12 | INDEX RANGE SCAN | I_MODEDATE | 2292 | | | 4323 (3)| 00:00:52 |
    |* 13 | INDEX UNIQUE SCAN | PK_TABLEDETAIL | 1 | 27 | | 0 (0)| 00:00:01 |
    | 14 | INDEX FAST FULL SCAN | ACC_NUMBER_TYPE | 58947 | 1151K| | 58 (4)| 00:00:01 |
    | 15 | TABLE ACCESS FULL | AML_CUST_INFO | 18340 | 537K| | 111 (1)| 00:00:02 |
    | 16 | TABLE ACCESS FULL | MSGALERTS | 868K| 6782K| | 944 (4)| 00:00:12 |
    There is no index on RULECODE of MSGALERTS and RULETBL2 table.
    Could yu guys guide me how to tune this query with or without creating any new index.
    Thanks,

    To emphasise what hoek has said regarding dates, NEVER compare dates with dates by converting them to strings (or numbers). By doing so, you remove vital information from the optimizer.
    For example, what is the difference between "31st Dec 2010" and "1st Jan 2011"? Easy, they're dates, that's 1 day.
    But what's the difference between "20101231" and "20110101"? Easy: 20110101 - 20101231 = 8870.
    That makes the difference between the optimizer guessing 1 row or 8870 rows... a fairly big difference, I think you'll agree, which could well impact on the plan the optimizer chooses.
    One other point - leaving the clause as dates gives:
    AND    a.custom25 BETWEEN TO_DATE('2011/01/01', 'YYYY/MM/DD')
                          AND TO_DATE('2011/01/31', 'YYYY/MM/DD') which excludes any dates on 31st Jan 2011 except midnight, eg. 10am on 31st Jan 2011 won't be returned by your query.
    If you're after rows for a given month, then you could do:
    AND    trunc(a.custom25, 'mm') = TO_DATE('01/01/2011', 'dd/mm/yyyy')

Maybe you are looking for

  • Password hackers - how do I get their IP addresses so I can block them?

    /var/log/secure.log is indicating that people are trying to guess my root password repeatedly. Last week someone tried a dictionary-style attack where just about every userID under the sun was tried over a period of days. Here's a brief sample of wha

  • What is the best way to create a search help in wen dynpro java?

    Hi experts, In web dynpro java I want to create a search help which could guide user to search a job (also a position and a organizational unit) just like in transaction ppome. So which technique could be the best way to reach that quickly and simply

  • Need help in this one please... java algorithm.

    i have an array of integers, how do i get the unique instances of the integers in that array and save it in another array. i.e. array of integers: parent = {8, 7, 6, 8, 7, 7, 7, 7};result: roots[0] = 8 roots[1] = 7 roots[2] = 6i already finished the

  • Apps do not show in the app manager, n79

    Hello, I installed some themes and now my old themes do not show in the app manager, however it shows up in the themes menu... how to solve this, pls help the experts here ... regards

  • Can't Install S-ATA Drivers

    Set up for XP Pro gets to the point where I can select what driver to choose then tells me that the file has caused an unexpected error (18) at line 210B in d:\xpclient\base\boot\setup\oemdisk.c Any help would be great. ~John