Performnace tunning related query

hi a,,
We are using oracle 9.2.0.8 on rhel 4.One if thequery is taking 20 min to fetch 83000 recordes.
select MRH_MRN as Membership_Number,to_char(MRH_BIRTH_DT,'dd/mm/yyyy') as Date_of_Birth,
MRH_FIRST_NAME as First_Name,MRH_MIDDLE_NAME as Middle_Name,MRH_SUR_NAME as Last_Name,
DECODE(MRH_FELLOW_STATUS_YN,'Y','FCA','N','ACA') as Fellow_Status,
'' as Flag,'' as Date_Of_Removal_Flag,to_char(MRH_ENROL_DT,'dd/mm/yyyy') as Date_of_Enrolment,
'' as Certificate_of_practice_number,'' as  Date_upto_which_CoP_valid
from om_mem_reg_head where mrh_mem_status='1' and nvl(mrh_mem_sub_status,'555')<>26 and
mrh_doc_status='5' and nvl(mrh_cop_status,'777')='1'
order by mrh_mrnIndexes on the tables are:
SQL> select INDEX_NAME,COLUMN_NAME,COLUMN_POSITION from dba_ind_columns where T
BLE_NAME='OM_MEM_REG_HEAD';
INDEX_NAME                     COLUMN_NAME          COLUMN_POSITION
MRH_SYS_ID_PK                  MRH_SYS_ID                         1
IDM_MRH_MRH_MRN                MRH_MRN                            1
OM_MEM_REG_HEAD_UK             MRH_COMP_CODE                      1
OM_MEM_REG_HEAD_UK             MRH_TXN_CODE                       2
OM_MEM_REG_HEAD_UK             MRH_NO                             3
OM_MEM_REG_HEAD_UK             MRH_ACNT_YR                        4
IDM_MRH_DOC                    MRH_DOC_STATUS                     1
IDX_TEMP_REF                   MRH_MFCH_TEMP_REF_NO               1
IDM_DOC_MRH_MRN                MRH_MRN                            1
IDM_DOC_MRH_MRN                MRH_DOC_STATUS                     2
IDM_MRH_PROF_CITY              MRH_PROF_CITY_CODE                 1
INDEX_NAME                     COLUMN_NAME          COLUMN_POSITION
IDM_MRH_RES_CITY               MRH_RES_CITY_CODE                  1
IDM_MRH_FEL_STAT_YN            MRH_FELLOW_STATUS_YN               1
IDX_OM_MEM_REG_HEAD            MRH_APPR_UID                       1
IDX_OM_MEM_REG_HEAD            MRH_MFCH_TEMP_REF_NO               2
IDX_OM_MEM_REG_HEAD            MRH_MRN                            3
IDX_OM_MEM_REG_HEAD_1          MRH_PROF_COU_CODE                  1
IDX_OM_MEM_REG_HEAD_1          MRH_RES_COU_CODE                   2
FUN_TRIM_INDEX                 SYS_NC00122$                       1
19 rows selected.I have found one column where there are fewer amount of distinct keys and the index on the same is created was Normal Index, so i dropped that index and created the bitmap index on the same.
SQL> select INDEX_TYPE from dba_indexes where index_name ='IDM_MRH_DOC';
INDEX_TYPE
NORMAL
SQL> select DISTINCT_KEYS,INDEX_TYPE from dba_indexes where index_name ='IDM_MRH
_DOC';
DISTINCT_KEYS INDEX_TYPE
            3 NORMAL
SQL> drop index IDM_MRH_DOC;
Index dropped.
SQL> create bitmap index  bitmap_IDM_MRH_DOC on OM_MEM_REG_HEAD(MRH_DOC_STATUS);
Index created.
SQL> select INDEX_NAME,COLUMN_NAME,COLUMN_POSITION from dba_ind_columns where TA
BLE_NAME='OM_MEM_REG_HEAD';
INDEX_NAME                     COLUMN_NAME          COLUMN_POSITION
MRH_SYS_ID_PK                  MRH_SYS_ID                         1
IDM_MRH_MRH_MRN                MRH_MRN                            1
OM_MEM_REG_HEAD_UK             MRH_COMP_CODE                      1
OM_MEM_REG_HEAD_UK             MRH_TXN_CODE                       2
OM_MEM_REG_HEAD_UK             MRH_NO                             3
OM_MEM_REG_HEAD_UK             MRH_ACNT_YR                        4
IDX_TEMP_REF                   MRH_MFCH_TEMP_REF_NO               1
IDM_DOC_MRH_MRN                MRH_MRN                            1
IDM_DOC_MRH_MRN                MRH_DOC_STATUS                     2
IDM_MRH_PROF_CITY              MRH_PROF_CITY_CODE                 1
IDM_MRH_RES_CITY               MRH_RES_CITY_CODE                  1
INDEX_NAME                     COLUMN_NAME          COLUMN_POSITION
IDM_MRH_FEL_STAT_YN            MRH_FELLOW_STATUS_YN               1
IDX_OM_MEM_REG_HEAD            MRH_APPR_UID                       1
IDX_OM_MEM_REG_HEAD            MRH_MFCH_TEMP_REF_NO               2
IDX_OM_MEM_REG_HEAD            MRH_MRN                            3
IDX_OM_MEM_REG_HEAD_1          MRH_PROF_COU_CODE                  1
IDX_OM_MEM_REG_HEAD_1          MRH_RES_COU_CODE                   2
FUN_TRIM_INDEX                 SYS_NC00122$                       1
BITMAP_IDM_MRH_DOC             MRH_DOC_STATUS                     1
19 rows selected.
SQL> exec dbms_stats.gather_index_stats(OWNNAME=>'DATA3',INDNAME=>'BITMAP_IDM_
MRH_DOC');
PL/SQL procedure successfully completed.
SQL> select DISTINCT_KEYS,INDEX_TYPE from dba_indexes where index_name ='BITMAP_
IDM_MRH_DOC';
DISTINCT_KEYS INDEX_TYPE
            3 BITMAPBut i have also found that there is also another index created on teh same column i.e MRH_DOC_STATUS
SQL> select DISTINCT_KEYS,INDEX_TYPE from dba_indexes where index_name ='IDM_DOC
_MRH_MRNIDM_DOC_MRH_MRN';
no rows selected
SQL> select DISTINCT_KEYS,INDEX_TYPE from dba_indexes where index_name ='IDM_DOC
_MRH_MRNIDM_DOC';
no rows selected
SQL> select DISTINCT_KEYS,INDEX_TYPE from dba_indexes where index_name ='IDM_DOC
_MRH_MRN';
DISTINCT_KEYS INDEX_TYPE
       188760 NORMALSo can anybody help me out to tune the above query

And 10046 trace O/P:
/u01/app/oracle/admin/icai/udump/icai_ora_12932.trc
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
ORACLE_HOME = /u01/app/oracle/product/9.2.0
System name:     Linux
Node name:     icaidb.icai.org
Release:     2.6.9-55.ELsmp
Version:     #1 SMP Fri Apr 20 16:36:54 EDT 2007
Machine:     x86_64
Instance name: icai
Redo thread mounted by this instance: 1
Oracle process number: 104
Unix process pid: 12932, image: [email protected] (TNS V1-V3)
*** 2010-11-24 13:16:10.480
*** SESSION ID:(293.425) 2010-11-24 13:16:10.457
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
APPNAME mod='SQL*Plus' mh=3669949024 act='' ah=184418403672
=====================
PARSING IN CURSOR #3 len=565 dep=0 uid=61 oct=3 lid=180388626493 tim=1260336689922887 hv=2189182420 ad='46adeeb0'
select MRH_MRN as Membership_Number,to_char(MRH_BIRTH_DT,'dd/mm/yyyy') as Date_of_Birth,
MRH_FIRST_NAME as First_Name,MRH_MIDDLE_NAME as Middle_Name,MRH_SUR_NAME as Last_Name,
DECODE(MRH_FELLOW_STATUS_YN,'Y','FCA','N','ACA') as Fellow_Status,
'' as Flag,'' as Date_Of_Removal_Flag,to_char(MRH_ENROL_DT,'dd/mm/yyyy') as Date_of_Enrolment,
'' as Certificate_of_practice_number,'' as  Date_upto_which_CoP_valid
from om_mem_reg_head where mrh_mem_status='1' and nvl(mrh_mem_sub_status,'555')<>26 and
mrh_doc_status='5' and nvl(mrh_cop_status,'777')='1'
order by mrh_mrn
END OF STMT
FETCH #3:c=1000,e=22931,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336689922872
WAIT #3: nam='SQL*Net message from client' ela= 550904 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336690473929
WAIT #3: nam='SQL*Net message from client' ela= 641438 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=46,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336691115462
WAIT #3: nam='SQL*Net message from client' ela= 676792 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336691792411
WAIT #3: nam='SQL*Net message from client' ela= 592851 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=69,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336692385471
WAIT #3: nam='SQL*Net message from client' ela= 332477 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=48,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336692718129
WAIT #3: nam='SQL*Net message from client' ela= 312487 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336693030696
WAIT #3: nam='SQL*Net message from client' ela= 315234 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336693346043
WAIT #3: nam='SQL*Net message from client' ela= 305700 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=65,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336693651951
WAIT #3: nam='SQL*Net message from client' ela= 292641 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336693944757
WAIT #3: nam='SQL*Net message from client' ela= 309182 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=49,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336694254041
WAIT #3: nam='SQL*Net message from client' ela= 278292 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=46,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336694532480
WAIT #3: nam='SQL*Net message from client' ela= 324197 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336694856778
WAIT #3: nam='SQL*Net message from client' ela= 297738 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=44,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336695154599
WAIT #3: nam='SQL*Net message from client' ela= 343907 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336695498661
WAIT #3: nam='SQL*Net message from client' ela= 415701 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336695914440
WAIT #3: nam='SQL*Net message from client' ela= 418678 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336696333231
WAIT #3: nam='SQL*Net message from client' ela= 488187 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=55,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336696821557
WAIT #3: nam='SQL*Net message from client' ela= 472519 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336697294163
WAIT #3: nam='SQL*Net message from client' ela= 474680 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336697768932
WAIT #3: nam='SQL*Net message from client' ela= 528989 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336698298079
WAIT #3: nam='SQL*Net message from client' ela= 661905 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=53,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336698960147
WAIT #3: nam='SQL*Net message from client' ela= 716554 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=59,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336699676820
WAIT #3: nam='SQL*Net message from client' ela= 620263 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336700297224
WAIT #3: nam='SQL*Net message from client' ela= 443038 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336700740446
WAIT #3: nam='SQL*Net message from client' ela= 279142 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336701019686
WAIT #3: nam='SQL*Net message from client' ela= 397300 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336701417076
WAIT #3: nam='SQL*Net message from client' ela= 367188 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=69,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336701784460
WAIT #3: nam='SQL*Net message from client' ela= 374719 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336702159311
WAIT #3: nam='SQL*Net message from client' ela= 392707 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=53,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336702552167
WAIT #3: nam='SQL*Net message from client' ela= 445791 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=67,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336702998071
WAIT #3: nam='SQL*Net message from client' ela= 470665 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=43,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336703468854
WAIT #3: nam='SQL*Net message from client' ela= 442511 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336703911437
WAIT #3: nam='SQL*Net message from client' ela= 489993 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336704401594
WAIT #3: nam='SQL*Net message from client' ela= 588921 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=55,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336704990685
WAIT #3: nam='SQL*Net message from client' ela= 607115 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336705597890
WAIT #3: nam='SQL*Net message from client' ela= 528052 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336706126037
WAIT #3: nam='SQL*Net message from client' ela= 547981 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=33,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336706674092
WAIT #3: nam='SQL*Net message from client' ela= 555349 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336707229550
WAIT #3: nam='SQL*Net message from client' ela= 553686 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=46,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336707783354
WAIT #3: nam='SQL*Net message from client' ela= 558337 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336708341798
WAIT #3: nam='SQL*Net message from client' ela= 674764 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=48,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336709016710
WAIT #3: nam='SQL*Net message from client' ela= 703971 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=62,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336709720854
WAIT #3: nam='SQL*Net message from client' ela= 706928 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336710427878
WAIT #3: nam='SQL*Net message from client' ela= 426735 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=49,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336710854746
WAIT #3: nam='SQL*Net message from client' ela= 401868 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336711256691
WAIT #3: nam='SQL*Net message from client' ela= 452195 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=46,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336711709004
WAIT #3: nam='SQL*Net message from client' ela= 451025 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336712160175
WAIT #3: nam='SQL*Net message from client' ela= 415919 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=999,e=89,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336712576300
WAIT #3: nam='SQL*Net message from client' ela= 358041 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336712934491
WAIT #3: nam='SQL*Net message from client' ela= 238351 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336713172941
WAIT #3: nam='SQL*Net message from client' ela= 235226 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=34,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336713408239
WAIT #3: nam='SQL*Net message from client' ela= 193152 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336713601453
WAIT #3: nam='SQL*Net message from client' ela= 127871 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=1000,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336713729397
WAIT #3: nam='SQL*Net message from client' ela= 180636 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336713910123
WAIT #3: nam='SQL*Net message from client' ela= 242109 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=34,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336714152305
WAIT #3: nam='SQL*Net message from client' ela= 253675 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336714406055
WAIT #3: nam='SQL*Net message from client' ela= 265600 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336714671724
WAIT #3: nam='SQL*Net message from client' ela= 281213 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=34,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336714953008
WAIT #3: nam='SQL*Net message from client' ela= 258833 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336715211930
WAIT #3: nam='SQL*Net message from client' ela= 233175 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=49,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336715445251
WAIT #3: nam='SQL*Net message from client' ela= 285209 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=58,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336715730649
WAIT #3: nam='SQL*Net message from client' ela= 302377 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 2 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=58,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336716033199
WAIT #3: nam='SQL*Net message from client' ela= 372898 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336716406182
WAIT #3: nam='SQL*Net message from client' ela= 363113 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336716769359
WAIT #3: nam='SQL*Net message from client' ela= 361432 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=51,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336717130945
WAIT #3: nam='SQL*Net message from client' ela= 356329 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=67,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336717487407
WAIT #3: nam='SQL*Net message from client' ela= 333663 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336717821149
WAIT #3: nam='SQL*Net message from client' ela= 319373 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=34,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336718140593
WAIT #3: nam='SQL*Net message from client' ela= 362203 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336718502892
WAIT #3: nam='SQL*Net message from client' ela= 374827 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=44,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336718877832
WAIT #3: nam='SQL*Net message from client' ela= 466595 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=34,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336719344517
WAIT #3: nam='SQL*Net message from client' ela= 543014 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=60,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336719887691
WAIT #3: nam='SQL*Net message from client' ela= 605408 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=49,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336720493253
WAIT #3: nam='SQL*Net message from client' ela= 611091 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336721104488
WAIT #3: nam='SQL*Net message from client' ela= 600371 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336721705006
WAIT #3: nam='SQL*Net message from client' ela= 606565 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=58,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336722311738
WAIT #3: nam='SQL*Net message from client' ela= 624611 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336722936480
WAIT #3: nam='SQL*Net message from client' ela= 596441 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336723533004
WAIT #3: nam='SQL*Net message from client' ela= 489228 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336724022307
WAIT #3: nam='SQL*Net message from client' ela= 343837 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336724366312
WAIT #3: nam='SQL*Net message from client' ela= 321959 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336724688356
WAIT #3: nam='SQL*Net message from client' ela= 281155 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=38,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336724969597
WAIT #3: nam='SQL*Net message from client' ela= 262474 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336725232180
WAIT #3: nam='SQL*Net message from client' ela= 304558 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336725536827
WAIT #3: nam='SQL*Net message from client' ela= 342691 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 0 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336725879663
WAIT #3: nam='SQL*Net message from client' ela= 369913 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 3 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=63,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336726249764
WAIT #3: nam='SQL*Net message from client' ela= 357409 p1=1413697536 p2=1 p3=0
WAIT #3: nam='SQL*Net message to client' ela= 1 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336726607360
WAIT #3: nam='SQL*Net message from client' ela= 399109 p1=1413697536 p2=1 p3=0
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336727006600
FETCH #3:c=0,e=53,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336727235025
FETCH #3:c=0,e=43,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336727475403
FETCH #3:c=1000,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336727709646
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336727943047
FETCH #3:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336728224392
FETCH #3:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336728557330
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336728859138
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336729153812
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336729400029
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336729647134
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336729906788
FETCH #3:c=0,e=23,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336730164635
FETCH #3:c=0,e=59,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336730442210
FETCH #3:c=0,e=44,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336730743875
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336731025032
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336731263319
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336731528179
FETCH #3:c=0,e=23,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336731829804
FETCH #3:c=1000,e=43,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336732143516
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336732540677
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336732922516
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336733368890
FETCH #3:c=999,e=58,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336733831762
FETCH #3:c=1000,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336734307265
FETCH #3:c=0,e=33,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336734759372
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336735225099
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336735752524
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336736312323
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336736962500
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336737616703
FETCH #3:c=0,e=60,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336738078824
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336738488801
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336738895095
FETCH #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336739306287
FETCH #3:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336739788655
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336740350143
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336740870555
FETCH #3:c=0,e=38,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336741298384
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336741750361
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336742205753
FETCH #3:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336742693911
FETCH #3:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336743188069
FETCH #3:c=0,e=55,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336743560187
FETCH #3:c=0,e=23,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336743907643
FETCH #3:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336744285668
FETCH #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336744669380
FETCH #3:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336744975068
FETCH #3:c=0,e=23,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336745360920
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336745750532
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336746147857
FETCH #3:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336746550277
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336746937885
FETCH #3:c=0,e=23,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336747340293
FETCH #3:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336747765000
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336748127411
FETCH #3:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336748484803
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336748903839
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336749339196
FETCH #3:c=0,e=48,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336749780563
FETCH #3:c=0,e=51,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336750231808
FETCH #3:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336750611797
FETCH #3:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336750912471
FETCH #3:c=0,e=57,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336751181137
FETCH #3:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336751520006
FETCH #3:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336751789450
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336752106790
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336752498428
FETCH #3:c=0,e=61,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336752959436
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336753540466
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336754236864
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336754882105
FETCH #3:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336755337278
FETCH #3:c=0,e=44,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336755688129
FETCH #3:c=1000,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336756074382
FETCH #3:c=0,e=38,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336756486682
FETCH #3:c=0,e=37,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336756842101
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336757266778
FETCH #3:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336757656362
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336758058843
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336758463044
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336758967323
FETCH #3:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336759552094
FETCH #3:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336760255147
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336760866312
FETCH #3:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336761279466
FETCH #3:c=0,e=40,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336761695558
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336762168205
FETCH #3:c=0,e=30,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336762657407
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336763210082
FETCH #3:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336763831357
FETCH #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336764515805
FETCH #3:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336765001274
FETCH #3:c=0,e=55,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336765451440
FETCH #3:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336765925938
FETCH #3:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336766476759
FETCH #3:c=0,e=28,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336767044994
FETCH #3:c=0,e=66,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336767665329
FETCH #3:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336768138881
FETCH #3:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336768629999
FETCH #3:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336769110992
FETCH #3:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=4,tim=1260336769492422

Similar Messages

  • Tune hierarchy query

    Hi,
    I have a table which holds geographical data in a hierrachical format. I need to retriev all the parent-information in a single query.
    The table is called CX_GEO_DATA, which stores hierrarchy relations .
    eg of data
    row_id type name parent_id start_dt end_dt
    1 Zip 400 2 1/2/2009 1/1/2020
    2 City San
    I need to extract all the parent information from the table, i.e. given a row_id, find its parents.
    Since it is a part of UI requiremnt a performence of 5 secs is desired.
    SELECT A.type,
         a.name,
              A.ALT_NAME,
              LEVEL,
                   a.start_dt,
                   a.end_dt,
                   a.par_geo_data_id,
              a.row_id
              FROM cx_geo_data A
    WHERE TRUNC(SYSDATE) BETWEEN START_DT AND NVL(END_DT,SYSDATE+1)
                   START WITH row_id = :p_row_id
    CONNECT BY PRIOR par_geo_data_id = row_id
    There are indexes in table on columns:
    Non unique par_geo_data_id
    Non unique name
    Unique Row_id (Primary key)
    I need result in the below form:
    i.e. given a row_id find all the parents for that record.
    Say if I get a Zip, get all its parents, i.e. Country, state, City, Zip etc
    To achieve that I have written a function:
    Which uses the query listed on top. i.e. a connect by query and returns a given type of parent.
    Below is the function code:
    FUNCTION get_par_at_a_level_info
    p_row_id varchar2,
    p_type_of_Parent varchar2
    RETURN VARCHAR2
    IS
    vParent_Name cx_geo_data.alt_name%type;
    BEGIN
    SELECT alt_name
    INTO vParent_Name
    FROM (
    SELECT A.type,
         a.name,
              A.ALT_NAME,
              LEVEL,
              a.row_id
              FROM cx_geo_data A
    WHERE TRUNC(SYSDATE) BETWEEN START_DT AND NVL(END_DT,SYSDATE+1)
    START WITH row_id = p_row_id
    CONNECT BY PRIOR par_geo_data_id = row_id
    )hier_tab
    WHERE hier_tab.type=p_type_of_Parent;
    return(initCap(vParent_Name));
    EXCEPTION
    WHEN no_data_found
    THEN RETURN NULL;
    WHEN OTHERS
    THEN RAISE;
    END get_par_at_a_level_info;
    So, if I need type of parent as Country I pass country to it, if I need City I pass City to the function.
    So, my final query is like:
    SELECT GEO_TYPE,
    GEO_NAME,
         geoElementId GEO_ELEMENT_ID,
              xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'Country') COUNTRY,
         xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'State') STATE,
         ---     xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'City') CITY,
         xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'Zip') ZIP
         FROM ( SELECT
         ---------restirction by user ideally nt reqd
         terr_gb.name NAME,
    INITCAP(geo.alt_name) GEO_NAME,
         geo.geoElementId,
         geo.TYPE GEO_TYPE,
         from cx_geo_data
    where row_id=p_row_id
    );

    let me know on how to tune this query or if there is any option to re-write it in any other form.

  • 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     

  • Help needed to tune the Query:Statistics added

    Can someone DBA please help me to tune this query:
    SELECT DISTINCT K.ATTRIBUTE_VALUE AGENCY_ID,B.PROFILE_NM ,NVL(G.OFFICE_DESC,'--') OFFICE_DESC,f.OFFICE_ID,B.PROFILE_ID,'%' ROLE,'%' LAYOUT,
    CASE
    WHEN 'flagB' = '%' THEN
    NVL(J.ISS_GRP_DESC,'BILLING')
    WHEN 'flagO' = '%' THEN
    NVL(J.ISS_GRP_DESC,'ORDERING')
    WHEN 'flag' = '%' THEN
    NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
    ELSE
    NVL(J.ISS_GRP_DESC,' ')
    END ISS_GRP_DESC,
    DECODE(NVL(H.USERID,' ') ,' ','--','<a sbcuid_in=' || H.USERID || ' target=NEW >'||H.FIRSTNAME || ' ' || H.LASTNAME || '( ' || H.USERID || ' )</a>' ) USER_NAME
    FROM
    PROFILE_PORTAL B ,
    TBL_BDA_AGENCY_RESP_REP C ,
    TBL_BDA_AGENCY_OFFICE F,
    TBL_BDA_OFFICE G,
    USERS_PORTAL H,
    TBL_BDA_USR_ISS_GRP I ,
    TBL_BDA_ISS_GROUP J,
    ATTRIBUTE_VALUES_PORTAL K,
    PROFILE_TYPE_PORTAL L
    WHERE
    B.PROFILE_ID = F.AGENCY_ID (+)
    AND B.PROFILE_ID = C.AGENCY_ID (+)
    AND G.OFFICE_ID (+)= F.OFFICE_ID
    AND H.USERID (+)= C.RESP_USR_ID
    AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
    AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
    AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
    AND K.ATTRIBUTE_VALUE IS NOT NULL
    AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
    AND L.APPLICATION_CD='BDA'
    AND NOT EXISTS (SELECT agency_id
    FROM TBL_BDA_AGENCY_RESP_REP t
    WHERE t.ISS_GRP_ID IN ('%')
    AND t.AGENCY_ID = C.AGENCY_ID)
    AND K.ATTRIBUTE_VALUE LIKE '%'
    AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
    AND (to_char(NVL(B.PROFILE_ID,0)) LIKE '%' OR NVL(B.PROFILE_ID,0) IN ('a'))
    AND NVL(G.OFFICE_ID,0) IN ('%')
    AND (to_char(NVL(C.RESP_USR_ID,'0')) LIKE '%' OR NVL(C.RESP_USR_ID,'0') IN ('k'))
    ORDER BY PROFILE_NM
    The number of rows in these tables are as follows:
    PROFILE_PORTAL -- 2392
    TBL_BDA_AGENCY_RESP_REP 3508
    TBL_BDA_AGENCY_OFFICE 2151
    TBL_BDA_OFFICE 3
    USERS_PORTAL 270500
    TBL_BDA_USR_ISS_GRP 234
    TBL_BDA_ISS_GROUP 2
    ATTRIBUTE_VALUES_PORTAL 2790
    PROFILE_TYPE_PORTAL 3
    The Explain pal nhas given this o/p to me:
    SQL> select * from table(dbms_xplan.display) dual;
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
    | 0 | SELECT STATEMENT | | 807 | 102K| | 2533 |
    | 1 | SORT UNIQUE | | 807 | 102K| 232K| 82 |
    |* 2 | FILTER | | | | | |
    |* 3 | HASH JOIN OUTER | | 807 | 102K| | 52 |
    |* 4 | HASH JOIN OUTER | | 807 | 95226 | | 40 |
    |* 5 | TABLE ACCESS BY INDEX ROWID | ATTRIBUTE_VALUES | 1 | 23 | | 2 |
    | 6 | NESTED LOOPS | | 7 | 805 | | 37 |
    | 7 | NESTED LOOPS OUTER | | 6 | 552 | | 25 |
    |* 8 | FILTER | | | | | |
    | 9 | NESTED LOOPS OUTER | | | | | |
    |* 10 | FILTER | | | | | |
    | 11 | NESTED LOOPS OUTER | | | | | |
    | 12 | NESTED LOOPS OUTER | | 3 | 141 | | 10 |
    |* 13 | HASH JOIN | | 3 | 120 | | 7 |
    |* 14 | TABLE ACCESS FULL | PROFILE | 6 | 198 | | 4 |
    |* 15 | TABLE ACCESS FULL | PROFILE_TYPE | 1 | 7 | | 2 |
    |* 16 | INDEX RANGE SCAN | SYS_C0019777 | 1 | 7 | | 1 |
    | 17 | TABLE ACCESS BY INDEX ROWID| TBL_BDA_OFFICE | 1 | 10 | | 1 |
    |* 18 | INDEX UNIQUE SCAN | SYS_C0019800 | 1 | | | |
    | 19 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 2 | 26 | | 2 |
    |* 20 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
    | 21 | TABLE ACCESS BY INDEX ROWID | USER_ | 1 | 22 | | 1 |
    |* 22 | INDEX UNIQUE SCAN | USER_PK | 1 | | | |
    |* 23 | INDEX RANGE SCAN | IDX_ATTVAL_ENTATTID | 1 | | | 1 |
    | 24 | TABLE ACCESS FULL | TBL_BDA_USR_ISS_GRP | 234 | 702 | | 2 |
    | 25 | TABLE ACCESS FULL | TBL_BDA_ISS_GROUP | 2 | 24 | | 2 |
    |* 26 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 1 | 7 | | 3 |
    |* 27 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
    Predicate Information (identified by operation id):
    2 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "TBL_BDA_AGENCY_RESP_REP" "T" WHERE "T"."AGENCY_ID"=:B1
    AND "T"."ISS_GRP_ID"=TO_NUMBER('%')))
    3 - access("I"."ISS_GRP_ID"="J"."ISS_GRP_ID"(+))
    4 - access("SYS_ALIAS_1"."ISS_GRP_ID"="I"."ISS_GRP_ID"(+))
    5 - filter("K"."ATTRIBUTE_VALUE" IS NOT NULL AND "K"."ATTRIBUTE_VALUE" LIKE '%')
    8 - filter(NVL("SYS_ALIAS_1"."RESP_USR_ID",'0') LIKE '%' OR NVL("SYS_ALIAS_1"."RESP_USR_ID",'0')='k')
    10 - filter(NVL("G"."OFFICE_ID",0)=TO_NUMBER('%'))
    13 - access("L"."PROFILE_TYPE_ID"="B"."PROFILE_TYPE_ID")
    14 - filter(UPPER("B"."PROFILE_NM") LIKE '%' AND (TO_CHAR(NVL("B"."PROFILE_ID",0)) LIKE '%' OR
    NVL("B"."PROFILE_ID",0)=TO_NUMBER('a')))
    15 - filter("L"."APPLICATION_CD"='BDA')
    16 - access("B"."PROFILE_ID"="F"."AGENCY_ID"(+))
    18 - access("G"."OFFICE_ID"(+)="F"."OFFICE_ID")
    20 - access("B"."PROFILE_ID"="SYS_ALIAS_1"."AGENCY_ID"(+))
    22 - access("H"."USERID"(+)="SYS_ALIAS_1"."RESP_USR_ID")
    23 - access("K"."ENTITY_ID"='PROFILE.'||TO_CHAR("B"."PROFILE_ID"))
    26 - filter("T"."ISS_GRP_ID"=TO_NUMBER('%'))
    27 - access("T"."AGENCY_ID"=:B1)
    Note: cpu costing is off
    57 rows selected.
    Elapsed: 00:00:01.08
    Please help me.
    Aashish S.

    Hello Eric,
    Here is the code:
    SELECT DISTINCT
    K.ATTRIBUTE_VALUE AGENCY_ID,
    B.PROFILE_NM ,
    NVL(G.OFFICE_DESC,'--') OFFICE_DESC,
    f.OFFICE_ID,
    B.PROFILE_ID,
    '%' ROLE,
    '%' LAYOUT,
    case
    WHEN 'flagB' = '%' THEN
    NVL(J.ISS_GRP_DESC,'BILLING')
    WHEN 'flagO' = '%' THEN
    NVL(J.ISS_GRP_DESC,'ORDERING')
    WHEN 'flag' = '%' THEN
    NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
    else
    NVL(J.ISS_GRP_DESC,' ')
    END ISS_GRP_DESC,
    DECODE(NVL(H.USERID,' ') ,' ','--','&lt;a sbcuid_in=' || H.USERID || ' target=NEW &gt;'||H.FIRSTNAME || ' ' || H.LASTNAME ||
    '( ' || H.USERID || ' )&lt;/a&gt;' ) USER_NAME
    from
    PROFILE_PORTAL B ,
    TBL_BDA_AGENCY_RESP_REP C ,
    TBL_BDA_AGENCY_OFFICE F,
    TBL_BDA_OFFICE G,
    USERS_PORTAL H,
    TBL_BDA_USR_ISS_GRP I ,
    TBL_BDA_ISS_GROUP J,
    ATTRIBUTE_VALUES_PORTAL K,
    PROFILE_TYPE_PORTAL L
    WHERE
    B.PROFILE_ID = F.AGENCY_ID (+)
    AND B.PROFILE_ID = C.AGENCY_ID (+)
    AND G.OFFICE_ID (+)= F.OFFICE_ID
    AND H.USERID (+)= C.RESP_USR_ID
    AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
    AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
    AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
    AND K.ATTRIBUTE_VALUE IS NOT NULL
    AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
    AND L.APPLICATION_CD='BDA'
    AND NOT EXISTS
    (SELECT agency_id
    FROM TBL_BDA_AGENCY_RESP_REP t
    WHERE t.ISS_GRP_ID IN (1)
    AND t.AGENCY_ID = C.AGENCY_ID)
    AND K.ATTRIBUTE_VALUE LIKE '%'
    AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
    AND (to_char(NVL(B.PROFILE_ID,0))
    LIKE '%'
    OR NVL(B.PROFILE_ID,0) IN (1))
    AND NVL(G.OFFICE_ID,0) IN (1)
    AND (to_char(NVL(C.RESP_USR_ID,'0'))
    LIKE '%'
    OR NVL(C.RESP_USR_ID,'0') IN ('%'))
    ORDER BY PROFILE_NM
    This is the Query and the query takes some mins. to run in prod environment.
    From the Query plan ,I am not able to get any idea for optimization.
    Now,Can you tell me which steps I need to follow to run it faster and which all modifications should be made?
    Thanks.
    Aashish S.

  • Is there any way to tune this query? EXPLAIN PLAN included

    DB version:10gR2
    The below query was taking more than 3 seconds. The statistics are up to date for these tables. Is there any other way i could tune this query?
    SELECT COUNT(1)
    FROM
    INVN_SCOPE_DTL, ship_dtl WHERE ship_dtl.WHSE = INVN_SCOPE_DTL.WHSE (+)
    AND 'QC' = INVN_SCOPE_DTL.FROM_WORK_GRP (+)
    AND  'MQN' = INVN_SCOPE_DTL.FROM_WORK_AREA (+)
    AND  ship_dtl.START_CURR_WORK_GRP = INVN_SCOPE_DTL.TO_WORK_GRP (+)
    AND  ship_dtl.START_CURR_WORK_AREA = INVN_SCOPE_DTL.TO_WORK_AREA (+)
    AND  ship_dtl.WHSE = '930' AND  ship_dtl.OWNER_USER_ID = 'CTZDM'
    OR ship_dtl.OWNER_USER_ID = '*'
    AND ship_dtl.STAT_CODE >= '10'
    AND ship_dtl.STAT_CODE <= '20'
    ORDER BY ship_dtl.OWNER_USER_ID DESC,
    ship_dtl.CURR_TASK_PRTY ASC, INVN_SCOPE_DTL.DISTANCE ASC, ship_dtl.RLS_DATE_TIME ASC, ship_dtl.TASK_ID ASC;
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    | Id  | Operation                      |  Name               | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT               |                     |     1 |    86 |    86   (2)|
    |   1 |  SORT AGGREGATE                |                     |     1 |    86 |            |
    |   2 |   NESTED LOOPS OUTER           |                     |   898 | 77228 |    86   (2)|
    |   3 |    INLIST ITERATOR             |                     |       |       |            |
    |*  4 |     TABLE ACCESS BY INDEX ROWID| ship_dtl            |   898 | 31430 |    85   (2)|
    |*  5 |      INDEX RANGE SCAN          | ship_dtl_IND_4      |  2876 |       |     1   (0)|
    |   6 |    TABLE ACCESS BY INDEX ROWID | INVN_SCOPE_DTL     |     1 |    51 |     2  (50)|
    PLAN_TABLE_OUTPUT
    |*  7 |     INDEX UNIQUE SCAN          | PK_INVN_SCOPE_DTL  |     1 |       |            |
    Predicate Information (identified by operation id):
       4 - filter("ship_dtl"."WHSE"='930' AND "ship_dtl"."STAT_CODE">=10 AND
                  "ship_dtl"."STAT_CODE"<=20)
       5 - access("ship_dtl"."OWNER_USER_ID"='*' OR "ship_dtl"."OWNER_USER_ID"='CTZDM')
       7 - access("INVN_SCOPE_DTL"."WHSE"(+)='930' AND
                  "INVN_SCOPE_DTL"."FROM_WORK_GRP"(+)='QC' AND "INVN_SCOPE_DTL"."FROM_WORK_AREA"(+)='MQN'
    PLAN_TABLE_OUTPUT
                  AND "ship_dtl"."START_CURR_WORK_GRP"="INVN_SCOPE_DTL"."TO_WORK_GRP"(+) AND
                  "ship_dtl"."START_CURR_WORK_AREA"="INVN_SCOPE_DTL"."TO_WORK_AREA"(+))
           filter("ship_dtl"."WHSE"="INVN_SCOPE_DTL"."WHSE"(+))
    25 rows selected.

    William Robertson wrote:
    I notice an OR predicate in the middle of some AND predicates without explicit bracketing. Are you sure it does what you think it does?I underline this point.
    A conjuction (AND expression) has a higher priority and will be executed (logically) before the disjunction (OR expression)! So your select looks like this
    SELECT COUNT(1)
    FROM INVN_SCOPE_DTL, ship_dtl
    WHERE
          ( ship_dtl.WHSE = INVN_SCOPE_DTL.WHSE (+)
          AND 'QC' = INVN_SCOPE_DTL.FROM_WORK_GRP (+)
          AND  'MQN' = INVN_SCOPE_DTL.FROM_WORK_AREA (+)
          AND  ship_dtl.START_CURR_WORK_GRP = INVN_SCOPE_DTL.TO_WORK_GRP (+)
          AND  ship_dtl.START_CURR_WORK_AREA = INVN_SCOPE_DTL.TO_WORK_AREA (+)
          AND  ship_dtl.WHSE = '930'
          AND  ship_dtl.OWNER_USER_ID = 'CTZDM'
    OR   ( ship_dtl.OWNER_USER_ID = '*'
          AND ship_dtl.STAT_CODE >= '10'
          AND ship_dtl.STAT_CODE <= '20'
    ;This might be want you want, but I doubt it very much. Please add parenthesis', to get it working the way it should be.
    Edited by: Sven W. on Oct 16, 2008 3:25 PM

  • The workbook report no authorization, but related query can show part data

    Dear All,
    We meet an error, The workbook report no authorization, but related query can show part data.
    We have a workbook, it have 1 queries, and when we key in condition to run it, in one field we put on one more condition(Z3XXX = ' WZO'  & ' WZA")(User didn't have authorization for this condition),  and workbook report no authorization.
    Then we checked  authorization check log and it show "You do not have sufficient authorization on Z3XXX = ' WCO'.
    But when we execute the related query with same condition. the query can open and show WZA's data.
    I'd like to know the reason.
    thanks & Best Regards,
    Kent Yu

    Dear All,
    We meet an error, The workbook report no authorization, but related query can show part data.
    We have a workbook, it have 1 queries, and when we key in condition to run it, in one field we put on one more condition(Z3XXX = ' WZO'  & ' WZA")(User didn't have authorization for this condition),  and workbook report no authorization.
    Then we checked  authorization check log and it show "You do not have sufficient authorization on Z3XXX = ' WCO'.
    But when we execute the related query with same condition. the query can open and show WZA's data.
    I'd like to know the reason.
    thanks & Best Regards,
    Kent Yu

  • 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 this query for the improve performance ?

    Hi All,
    How to tune this query for the improve performance ?
    select a.claim_number,a.pay_cd,a.claim_occurrence_number,
    case
    when sum(case
    when a.payment_status_cd ='0'
    then a.payment_est_amt
    else 0
    end
    )=0
    then 0
    else (sum(case
    when a.payment_status_cd='0'and a.payment_est_amt > 0
    then a.payment_est_amt
    else 0
    end)
    - sum(case
    when a.payment_status_cd<>'0'
    then a.payment_amt
    else 0
    end))
    end as estimate
    from ins_claim_payment a
    where a.as_of_date between '31-jan-03' and '30-aug-06'
    and ( a.data_source = '25' or (a.data_source between '27' and '29'))
    and substr(a.pay_cd,1,1) IN ('2','3','4','8','9')
    group by a.claim_number, a.pay_cd, a.claim_occurrence_number
    Thank you,
    Mcka

    Mcka
    As well as EXPLAIN PLAN, let us know what proportion of rows are visited by this query. It may be that it is not using a full table scan when it should (or vice versa).
    And of course we'd need to know what indexes are available, and how selective they are for the predicated you have in this query ...
    Regards Nigel

  • 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.

  • Multi-part related query reports

    http://download-east.oracle.com/docs/html/B10310_01/orbr_concepts1.htm#1012365
    Can someone provide me better info about 'Multi-part related query reports '

    Hi,
    yes you can have multiple query in your report. So you have multiple groups in your data model. Then you must put multiple repeating frames in your layout in order to extract data from your queries, selecting the desired group in the source property of your repeating frame.
    Bye
    Raffy

  • How to tune sql query

    Hi,
    How I can tune sql query? what are the steps for tuning.

    First important step: Infomation gathering. One part can be learning to use the powerful search engine. E.g. search this forum for: "When your query takes too long".
    Second step: Information processing. Check the data you found and apply it to your problem
    Third step: Testing. Compare the result of the applied change before and after. Was there any performance gain as expected?

  • How can I related Query name with Query elements?

    Hello gurus!
    I am working with BI7, content technical, well I need to find out a solution where I can related Query name with query elements (KYF, CKY, Restricted Key Figures, var, etc)
    In master data 0tctquery, exist the query element, but, I can not related with object are from what query...
    Do you know how I can do it??? some solution???
    Best Regards

    "it is impossible to relate both tables" ???
    hmmm... these are exactly the tables the Query Designer uses to "build" up the query... so trust me, they do relate
    now to get this information in an InfoCube is a totally different thing... how do you expect to report on this if you should get it in an InfoCube? let's take a simple example... assume you have a query (QUERY_1) which looks like:
                                      Sales  Sales
    Sales Org Customer    Qty      Value
    1000         ABC           10 PC  500 €
    1000         DEF             5 PC  250 €
    in your Cube you would get:
    QueryName  QueryElement
    QUERY_1    0SALESORG
    QUERY_1    0CUSTOMER
    QUERY_1    ZSLSQTY
    QUERY_1    ZSLSVAL
    if you have free characteristics, you'll add more lines... same for variables, CKFs, RKFs, conditions, ...
    I guess it would be better to create a little ABAP report using the above tables (oh, you'll be needing a lot more tables if you wish more detail)

  • How do tune sql query? Can somebody help me in this? Atleast prescribe book

    how do tune sql query? Can somebody help me in this? Atleast prescribe a reference book.
    I am not able understand How to analyze tkproof output.

    Check out asktom.oracle.com
    Lot's of threads on interpreting tkprof output - no simple easy solution here.
    You need to understand what is happening and THINK. Then you can be a good engineer.
    As for good books...
    Tom Kyte's books are really, really good.
    http://www.amazon.com/Effective-Oracle-Design-Osborne-ORACLE/dp/0072230657/ref=sr_1_3?ie=UTF8&s=books&qid=1266783471&sr=8-3
    http://www.amazon.com/Expert-Oracle-Database-Architecture-Programming/dp/1590595300/ref=sr_1_1?ie=UTF8&s=books&qid=1266783471&sr=8-1
    Good luck!

  • Help Tune a query

    Hi,
    Can you please help me tune a query?
    I have a dimension table PRODUCT which is having product data with millions of rows and another table (fact table) with more than millions of rows and it is called PRODUCT TRANSACTION.
    The PRODUCT TRANSACTION table has multiple rows for a given product with multiple issue dates. EX.
    PRODUCT ISSUE DATE
    A 10/28/2008
    B 11/02/2008
    C 05/28/2008
    D 06/27/2008
    E 07/28/2008
    I am doing JOIN between PRODUCT (dimension table) and fact (PRODUCT TRANSACTION TABLE) and just want a minimum of ISSUE DATE (means only one record from fact table for each product in dimension table).
    I have written query as
    SELECT PRODUCT_ID FROM
    PRODUCT_TRANSACTION AS PT
    INNER JOIN PRODUCT P ON
    P.PRODUCT_ID IN (SELECT PT.PRODUCT_ID FROM
    SELECT PT1.PRODUCT_ID, MIN (PT1.ISSUE_DATE) AS MINC
    FROM PRODUCT_TRANSACTION PT1
    GROUP BY PT1.PRODUCT_ID) B)
    This query takes forever. Is there a better way to accomplish this?
    Please suggest.

    Try this:
    SELECT
    PRODUCT_ID,
    min(issue_date)  keep(dense_rank first order by issue_date)
    FROM
    PRODUCT_TRANSACTION
    GROUP BY PRODUCT_IDRegards,
    Sayan M.

Maybe you are looking for