Buffer sort

I have a query that shows me that one of my tables is doing a Full Scan and a Buffer Sort in it, but I dont have any order by clause, or distinct or nothing... Why the Buffer Sort appears???
Thanks!

Probably because the database needs to take an interim result set and put it in a certain sequenct in order to make the next phase of the query more efficient.
Something like
take the username and dept number from the emp table, sort in dept number sequence, then go to the dept table to get the department name.

Similar Messages

  • Buffer(sort) operator

    Hi,
    i'm trying to understand what "buffer sort" operation is in the following explain plan:
    0 SELECT STATEMENT
    -1 MERGE JOIN CARTESIAN
    --2 TABLE ACCESS FULL PLAYS
    --3 BUFFER SORT
    ---4 TABLE ACCESS FULL MOVIE
    In Oracle 9i DataBase Performance Guide and Reference, "buffer sort" is not mentioned although all other explain plan's operations are.
    What does it mean? Does it take place in main memory or is it an external sort?
    Thank you.

    A BUFFER SORT typically means that Oracle reads data blocks into private memory,because the block will be accessed multiple times in the context of the SQL statement execution. in other words, Oracle sacrifies some extra memory to
    reduce the overhead of accessing blocks multiple times in shared memory.
    Hope this will clear your doubts.
    Thanks.

  • What is buffer sort?

    Hi,
    I m getting buffer sort in the explain plan.
    please let me know what it is means
    Thanks,
    Kumar.

    It means that oracle is caching some data from the row source into private memory in order to avoid having to read it multiple times.

  • Long time on buffer sort with a insert and select through a dblink

    I am doing a fairly simple "insert into select from" statement through a dblink, but something is going very wrong on the other side of the link. I am getting a huge buffer sort time in the explain plan (line 9) and I'm not sure why. When I try to run sql tuning on it from the other side of the dblink, I get an ora-600 error "ORA-24327: need explicit attach before authenticating a user".
    Here is the original sql:
    INSERT INTO PACE_IR_MOISTURE@PRODDMT00 (SCHEDULE_SEQ, LAB_SAMPLE_ID, HSN, SAMPLE_TYPE, MATRIX, SYSTEM_ID)
    SELECT DISTINCT S.SCHEDULE_SEQ, PI.LAB_SAMPLE_ID, PI.HSN, SAM.SAMPLE_TYPE, SAM.MATRIX, :B1 FROM SCHEDULES S
    JOIN PERMANENT_IDS PI ON PI.HSN = S.SCHEDULE_ID
    JOIN SAMPLES SAM ON PI.HSN = SAM.HSN
    JOIN PROJECT_SAMPLES PS ON PS.HSN = SAM.HSN
    JOIN PROJECTS P ON PS.PROJECT_SEQ = PS.PROJECT_SEQ
    WHERE S.PROC_CODE = 'DRY WEIGHT' AND S.ACTIVE_FLAG = 'C' AND S.COND_CODE = 'CH' AND P.WIP_STATUS IN ('WP','HO')
    AND SAM.WIP_STATUS = 'WP';
    Here is the sql as it appears on proddmt00:
    INSERT INTO "PACE_IR_MOISTURE" ("SCHEDULE_SEQ","LAB_SAMPLE_ID","HSN","SAMPLE_TYPE","MATRIX","SYSTEM_ID")
    SELECT DISTINCT "A6"."SCHEDULE_SEQ","A5"."LAB_SAMPLE_ID","A5"."HSN","A4"."SAMPLE_TYPE","A4"."MATRIX",:B1
    FROM "SCHEDULES"@! "A6","PERMANENT_IDS"@! "A5","SAMPLES"@! "A4","PROJECT_SAMPLES"@! "A3","PROJECTS"@! "A2"
    WHERE "A6"."PROC_CODE"='DRY WEIGHT' AND "A6"."ACTIVE_FLAG"='C' AND "A6"."COND_CODE"='CH' AND ("A2"."WIP_STATUS"='WP' OR "A2"."WIP_STATUS"='HO') AND "A4"."WIP_STATUS"='WP' AND "A3"."PROJECT_SEQ"="A3"."PROJECT_SEQ" AND "A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A4"."HSN" AND "A5"."HSN"="A6"."SCHEDULE_ID";
    Here is the explain plan on proddmt00:
    PLAN_TABLE_OUTPUT
    SQL_ID cvgpfkhdhn835, child number 0
    INSERT INTO "PACE_IR_MOISTURE" ("SCHEDULE_SEQ","LAB_SAMPLE_ID","HSN","SAMPLE_TYPE","MATRIX","SYSTEM_ID")
    SELECT DISTINCT "A6"."SCHEDULE_SEQ","A5"."LAB_SAMPLE_ID","A5"."HSN","A4"."SAMPLE_TYPE","A4"."MATRIX",:B1
    FROM "SCHEDULES"@! "A6","PERMANENT_IDS"@! "A5","SAMPLES"@! "A4","PROJECT_SAMPLES"@! "A3","PROJECTS"@! "A2"
    WHERE "A6"."PROC_CODE"='DRY WEIGHT' AND "A6"."ACTIVE_FLAG"='C' AND "A6"."COND_CODE"='CH' AND
    ("A2"."WIP_STATUS"='WP' OR "A2"."WIP_STATUS"='HO') AND "A4"."WIP_STATUS"='WP' AND
    "A3"."PROJECT_SEQ"="A3"."PROJECT_SEQ" AND "A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A4"."HSN" AND
    "A5"."HSN"="A6"."SCHEDULE_ID"
    Plan hash value: 3310593411
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Inst |IN-OUT|
    | 0 | INSERT STATEMENT | | | | | 5426M(100)| | | |
    | 1 | HASH UNIQUE | | 1210K| 118M| 262M| 5426M (3)|999:59:59 | | |
    |* 2 | HASH JOIN | | 763G| 54T| 8152K| 4300M (1)|999:59:59 | | |
    | 3 | REMOTE | | 231K| 5429K| | 3389 (2)| 00:00:41 | ! | R->S |
    | 4 | MERGE JOIN CARTESIAN | | 1254G| 61T| | 1361M (74)|999:59:59 | | |
    | 5 | MERGE JOIN CARTESIAN| | 3297K| 128M| | 22869 (5)| 00:04:35 | | |
    | 6 | REMOTE | SCHEDULES | 79 | 3002 | | 75 (0)| 00:00:01 | ! | R->S |
    | 7 | BUFFER SORT | | 41830 | 122K| | 22794 (5)| 00:04:34 | | |
    | 8 | REMOTE | PROJECTS | 41830 | 122K| | 281 (2)| 00:00:04 | ! | R->S |
    | 9 | BUFFER SORT | | 380K| 4828K| | 1361M (74)|999:59:59 | | |
    | 10 | REMOTE | PROJECT_SAMPLES | 380K| 4828K| | 111 (0)| 00:00:02 | ! | R->S |
    Predicate Information (identified by operation id):
    2 - access("A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A6"."SCHEDULE_ID")

    Please use code tags... your formatted message is below:
    From the looks of your explain plan... these entries :
    Id      Operation      Name      Rows      Bytes     TempSpc      Cost (%CPU)      Time      Inst     IN-OUT
    4      MERGE JOIN CARTESIAN            1254G      61T            1361M (74)     999:59:59           
    5      MERGE JOIN CARTESIAN            3297K      128M            22869 (5)      00:04:35            Are causing extensive cpu processing, probably due to the cartesian join (includes sorting)... does "61T" mean 61 terabytes? Holy hell
    From the looks of the explain plan these tables don't look partitioned.... can you confirm?
    Why are you selecting distinct? If this is for ETL or data warehouse related procedure it ain't a good idea to use distinct... well ever... it's horrible for performance.
    INSERT INTO PACE_IR_MOISTURE@PRODDMT00 (SCHEDULE_SEQ, LAB_SAMPLE_ID, HSN, SAMPLE_TYPE, MATRIX, SYSTEM_ID)
    SELECT DISTINCT S.SCHEDULE_SEQ, PI.LAB_SAMPLE_ID, PI.HSN, SAM.SAMPLE_TYPE, SAM.MATRIX, :B1 FROM SCHEDULES S
    JOIN PERMANENT_IDS PI ON PI.HSN = S.SCHEDULE_ID
    JOIN SAMPLES SAM ON PI.HSN = SAM.HSN
    JOIN PROJECT_SAMPLES PS ON PS.HSN = SAM.HSN
    JOIN PROJECTS P ON PS.PROJECT_SEQ = PS.PROJECT_SEQ
    WHERE S.PROC_CODE = 'DRY WEIGHT' AND S.ACTIVE_FLAG = 'C' AND S.COND_CODE = 'CH' AND P.WIP_STATUS IN ('WP','HO')
    AND SAM.WIP_STATUS = 'WP';
    Here is the sql as it appears on proddmt00:
    INSERT INTO "PACE_IR_MOISTURE" ("SCHEDULE_SEQ","LAB_SAMPLE_ID","HSN","SAMPLE_TYPE","MATRIX","SYSTEM_ID")
    SELECT DISTINCT "A6"."SCHEDULE_SEQ","A5"."LAB_SAMPLE_ID","A5"."HSN","A4"."SAMPLE_TYPE","A4"."MATRIX",:B1
    FROM "SCHEDULES"@! "A6","PERMANENT_IDS"@! "A5","SAMPLES"@! "A4","PROJECT_SAMPLES"@! "A3","PROJECTS"@! "A2"
    WHERE "A6"."PROC_CODE"='DRY WEIGHT' AND "A6"."ACTIVE_FLAG"='C' AND "A6"."COND_CODE"='CH' AND ("A2"."WIP_STATUS"='WP' OR "A2"."WIP_STATUS"='HO') AND "A4"."WIP_STATUS"='WP' AND "A3"."PROJECT_SEQ"="A3"."PROJECT_SEQ" AND "A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A4"."HSN" AND "A5"."HSN"="A6"."SCHEDULE_ID";
    Here is the explain plan on proddmt00:
    PLAN_TABLE_OUTPUT
    SQL_ID cvgpfkhdhn835, child number 0
    INSERT INTO "PACE_IR_MOISTURE" ("SCHEDULE_SEQ","LAB_SAMPLE_ID","HSN","SAMPLE_TYPE","MATRIX","SYSTEM_ID")
    SELECT DISTINCT "A6"."SCHEDULE_SEQ","A5"."LAB_SAMPLE_ID","A5"."HSN","A4"."SAMPLE_TYPE","A4"."MATRIX",:B1
    FROM "SCHEDULES"@! "A6","PERMANENT_IDS"@! "A5","SAMPLES"@! "A4","PROJECT_SAMPLES"@! "A3","PROJECTS"@! "A2"
    WHERE "A6"."PROC_CODE"='DRY WEIGHT' AND "A6"."ACTIVE_FLAG"='C' AND "A6"."COND_CODE"='CH' AND
    ("A2"."WIP_STATUS"='WP' OR "A2"."WIP_STATUS"='HO') AND "A4"."WIP_STATUS"='WP' AND
    "A3"."PROJECT_SEQ"="A3"."PROJECT_SEQ" AND "A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A4"."HSN" AND
    "A5"."HSN"="A6"."SCHEDULE_ID"
    Plan hash value: 3310593411
    Id      Operation      Name      Rows      Bytes     TempSpc      Cost (%CPU)      Time      Inst     IN-OUT
    0      INSERT STATEMENT                              5426M(100)                 
    1      HASH UNIQUE            1210K      118M      262M      5426M (3)     999:59:59           
    * 2      HASH JOIN            763G      54T      8152K      4300M (1)     999:59:59           
    3      REMOTE            231K      5429K            3389 (2)      00:00:41      !      R->S
    4      MERGE JOIN CARTESIAN            1254G      61T            1361M (74)     999:59:59           
    5      MERGE JOIN CARTESIAN            3297K      128M            22869 (5)      00:04:35           
    6      REMOTE      SCHEDULES      79      3002            75 (0)      00:00:01      !      R->S
    7      BUFFER SORT            41830      122K            22794 (5)      00:04:34           
    8      REMOTE      PROJECTS      41830      122K            281 (2)      00:00:04      !      R->S
    9      BUFFER SORT            380K      4828K            1361M (74)     999:59:59           
    10      REMOTE      PROJECT_SAMPLES      380K      4828K            111 (0)      00:00:02      !      R->S
    Predicate Information (identified by operation id):
    2 - access("A3"."HSN"="A4"."HSN" AND "A5"."HSN"="A6"."SCHEDULE_ID")Edited by: TheDudeNJ on Oct 13, 2009 1:11 PM

  • Very slow Sorting 48 million of records

    Hi All,
    I am working on a project to calculate calls, inbound and outbound at a telecom company.
    We get 12 million call records everyday i.e. Calling_number_From , Call_start_time,Calling_number_to and call_end_time.
    We then split these records into 4 records using UNION ALL which means we have 48 Million records to process and then we do order by call_time.
    This order by takes hours to run, Please advice on ideas to improve performance.
    Table has Parallel_degree 10
    We are on Oracle 10G
    We spilt the call into four records i.e.
    Each call will have incoming number and outgoing number.
    Incoming call
    Main_number Column_Call time Count_calls
    999     Call_start_time +1
    999     Call_end_time -1
    Outgoing Call
    Main_number Column_Call time Count_calls
    888          Call_start_time +1
    888          Call_end_time -1
    Then we sort the Column_call_time by asc order and check for maximum simultaneous Incoming,outgoing and maximum calls active for each Main_number in one hour.That is the reason we need the sort
    Do you guys know Any other alogoritm to do the same?
    Any way to sort 48 million rows faster.
    Below is the query.
    SELECT did_qry.PART_TS,
    did_qry.P_NUMBER ,
    TO_CHAR(did_qry.call_time,'HH24')
    ||':00-'
    ||TO_CHAR(DID_QRY.CALL_TIME,'HH24')
    ||':59' HOUR_RANGE,
    FLAG,
    HOUR_CHANGE,
    DECODE(HOUR_CHANGE,'HC',DID_QRY.ACTIVE_CALLS+1,DECODE(DID_QRY.ACTIVE_CALLS,0,1,DID_QRY.ACTIVE_CALLS)) ACTIVE_CALLS,
    DECODE(HOUR_CHANGE,'HC',DID_QRY.IO_CALLS_CNT+1,DECODE(DID_QRY.IO_CALLS_CNT,0,1,DID_QRY.IO_CALLS_CNT)) io_calls
    FROM
    (SELECT PART_TS,
    P_NUMBER,
    did,
    call_time,
    flag ,
    hour_change,
    SUM(act) over ( partition BY P_NUMBER order by rownum ) active_calls ,
    SUM(io_calls) over ( partition BY P_NUMBER,flag order by rownum ) io_calls_cnt
    FROM
    select TRUNC(H.PART_TS) PART_TS,
    TPILOT.P_NUM P_NUMBER,
    h.orig_num did,
    h.Call_start_ts call_time,
    'IN' flag,
    1 act,
    1 io_calls,
    'NA' hour_change
    from CALL_REC H,
    DISCONN_CD DCODE,
    P_DID TPILOT
    where ( (H.PART_TS >=to_date('17-02-2011 23:59:59','DD-MM-YYYY HH24:MI:SS')
    and H.PART_TS <to_date('14-02-2011 23:59:59','DD-MM-YYYY HH24:MI:SS'))
    AND DCODE.EFF_START_DT <= H.PART_TS
    AND DCODE.EFF_END_DT > H.PART_TS
    AND dcode.CDR_C_CDE =h.A_I_ID
    AND dcode.CDR_B_CDE =h.R_C_ID
    AND dcode.AB_DIS_IND ='N'
    AND RECORD_TYP_ID ='00000000'
    AND tpilot.EFF_START_DT <= h.PART_TS
    AND tpilot.EFF_END_DT > h.PART_TS
    and TPILOT.D_NUM =H.TERM_NUM
    UNION ALL
    select TRUNC(H.PART_TS) PART_TS,
    tpilot.P_NUM P_NUMBER,
    h.term_num did,
    h.PART_TS call_time,
    'IN' flag,
    -1 act,
    -1 io_calls,
    DECODE(greatest(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')), least(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')),'NC',DECODE(greatest(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')), TO_CHAR(h.PART_TS,'HH12'),'HC','NC')) hour_change
    from CALL_REC H,
    DISCONN_CD DCODE,
    P_DID tpilot
    where H.PART_TS >=to_date('17-02-2011 23:59:59','DD-MM-YYYY HH24:MI:SS')
    and H.PART_TS <to_date('19-02-2011 00:00:00','DD-MM-YYYY HH24:MI:SS')
    AND DCODE.EFF_START_DT <= h.PART_TS
    AND DCODE.EFF_END_DT > h.PART_TS
    AND dcode.CDR_C_CDE =h.A_I_ID
    AND dcode.CDR_B_CDE =h.R_C_ID
    AND dcode.AB_DIS_IND ='N'
    AND RECORD_TYP_ID ='00000000'
    and TPILOT.EFF_START_DT <= H.PART_TS
    and TPILOT.EFF_END_DT > H.PART_TS
    and TPILOT.D_NUM =H.TERM_NUM
    UNION ALL
    SELECT TRUNC(H.PART_TS) PART_TS,
    pilot.P_NUM P_NUMBER,
    h.orig_num did,
    h.Call_start_ts call_time,
    'OUT' flag,
    1 act,
    1 io_calls,
    'NA' hour_change
    FROM CALL_REC H,
    DISCONN_CD DCODE,
    P_DID PILOT
    where H.PART_TS >=to_date('17-02-2011 23:59:59','DD-MM-YYYY HH24:MI:SS')
    and H.PART_TS <to_date('19-02-2011 00:00:00','DD-MM-YYYY HH24:MI:SS')
    AND DCODE.EFF_START_DT <= H.PART_TS
    AND DCODE.EFF_END_DT > H.PART_TS
    AND dcode.CDR_C_CDE =h.A_I_ID
    AND dcode.CDR_B_CDE =h.R_C_ID
    AND dcode.AB_DIS_IND ='N'
    AND RECORD_TYP_ID ='00000000'
    AND pilot.EFF_START_DT <= h.PART_TS
    and PILOT.EFF_END_DT > H.PART_TS
    and PILOT.D_NUM =H.ORIG_NUM
    UNION ALL
    SELECT TRUNC(h.PART_TS) PART_TS,
    pilot.P_NUM P_NUMBER,
    h.term_num did,
    h.PART_TS call_time,
    'OUT' flag,
    -1 act,
    -1 io_calls,
    DECODE(greatest(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')), least(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')),'NC',DECODE(greatest(TO_CHAR(h.Call_start_ts,'HH12'),TO_CHAR(h.PART_TS,'HH12')), TO_CHAR(h.PART_TS,'HH12'),'HC','NC')) hour_change
    FROM CALL_REC H,
    DISCONN_CD DCODE,
    P_DID pilot
    WHERE H.PART_TS >=to_date('17-02-2011 23:59:59','DD-MM-YYYY HH24:MI:SS')
    and H.PART_TS <to_date('19-02-2011 00:00:00','DD-MM-YYYY HH24:MI:SS')
    AND DCODE.EFF_START_DT <= h.PART_TS
    AND DCODE.EFF_END_DT > h.PART_TS
    AND dcode.CDR_C_CDE =h.A_I_ID
    AND dcode.CDR_B_CDE =h.R_C_ID
    AND dcode.AB_DIS_IND ='N'
    AND RECORD_TYP_ID ='00000000'
    AND pilot.EFF_START_DT <= h.PART_TS
    AND pilot.EFF_END_DT > h.PART_TS
    AND pilot.D_NUM =h.orig_num
    ORDER BY 2,4,6 ASC
    ) DID_QRY
    )

    Explain Plan
    Plan hash value: 616103529
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
    | 0 | SELECT STATEMENT | | 204M| 12G| | 759K (1)| 02:31:49 | | | | | |
    | 1 | WINDOW SORT | | 204M| 12G| 33G| 759K (1)| 02:31:49 | | | | | |
    | 2 | WINDOW SORT | | 204M| 12G| 33G| 759K (1)| 02:31:49 | | | | | |
    | 3 | COUNT | | | | | | | | | | | |
    | 4 | PX COORDINATOR | | | | | | | | | | | |
    | 5 | PX SEND QC (ORDER) | :TQ10005 | 204M| 12G| | 5919K(100)| 19:44:00 | | | Q1,05 | P->S | QC (ORDER) |
    | 6 | VIEW | | 204M| 12G| | 5919K(100)| 19:44:00 | | | Q1,05 | PCWP | |
    | 7 | SORT ORDER BY | | 204M| 22G| 55G| 22449 (76)| 00:04:30 | | | Q1,05 | PCWP | |
    | 8 | PX RECEIVE | | | | | | | | | Q1,05 | PCWP | |
    | 9 | PX SEND RANGE | :TQ10004 | | | | | | | | Q1,04 | P->P | RANGE |
    | 10 | BUFFER SORT | | 204M| 12G| | | | | | Q1,04 | PCWP | |
    | 11 | UNION-ALL | | | | | | | | | Q1,04 | PCWP | |
    |* 12 | HASH JOIN | | 51M| 6052M| | 5612 (4)| 00:01:08 | | | Q1,04 | PCWP | |
    | 13 | BUFFER SORT | | | | | | | | | Q1,04 | PCWC | |
    | 14 | PX RECEIVE | | 13 | 754 | | 5 (0)| 00:00:01 | | | Q1,04 | PCWP | |
    | 15 | PX SEND BROADCAST | :TQ10000 | 13 | 754 | | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
    | 16 | MERGE JOIN CARTESIAN| | 13 | 754 | | 5 (0)| 00:00:01 | | | | | |
    | 17 | INDEX FULL SCAN | IDX_PK_PBX_PILOT_DID | 2 | 68 | | 1 (0)| 00:00:01 | | | | | |
    | 18 | BUFFER SORT | | 7 | 168 | | 4 (0)| 00:00:01 | | | | | |
    |* 19 | TABLE ACCESS FULL | VOIP_ABNORM_DISCONN_CD | 7 | 168 | | 2 (0)| 00:00:01 | | | | | |
    | 20 | PX BLOCK ITERATOR | | 7874K| 495M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWC | |
    |* 21 | TABLE ACCESS FULL | HIQ_EVENT_T | 7874K| 495M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWP | |
    |* 22 | HASH JOIN | | 51M| 5516M| | 5612 (4)| 00:01:08 | | | Q1,04 | PCWP | |
    | 23 | BUFFER SORT | | | | | | | | | Q1,04 | PCWC | |
    | 24 | PX RECEIVE | | 13 | 754 | | 5 (0)| 00:00:01 | | | Q1,04 | PCWP | |
    | 25 | PX SEND BROADCAST | :TQ10001 | 13 | 754 | | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
    | 26 | MERGE JOIN CARTESIAN| | 13 | 754 | | 5 (0)| 00:00:01 | | | | | |
    | 27 | INDEX FULL SCAN | IDX_PK_PBX_PILOT_DID | 2 | 68 | | 1 (0)| 00:00:01 | | | | | |
    | 28 | BUFFER SORT | | 7 | 168 | | 4 (0)| 00:00:01 | | | | | |
    |* 29 | TABLE ACCESS FULL | VOIP_ABNORM_DISCONN_CD | 7 | 168 | | 2 (0)| 00:00:01 | | | | | |
    | 30 | PX BLOCK ITERATOR | | 7874K| 413M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWC | |
    |* 31 | TABLE ACCESS FULL | HIQ_EVENT_T | 7874K| 413M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWP | |
    |* 32 | HASH JOIN | | 51M| 5516M| | 5612 (4)| 00:01:08 | | | Q1,04 | PCWP | |
    | 33 | BUFFER SORT | | | | | | | | | Q1,04 | PCWC | |
    | 34 | PX RECEIVE | | 13 | 754 | | 5 (0)| 00:00:01 | | | Q1,04 | PCWP | |
    | 35 | PX SEND BROADCAST | :TQ10002 | 13 | 754 | | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
    | 36 | MERGE JOIN CARTESIAN| | 13 | 754 | | 5 (0)| 00:00:01 | | | | | |
    | 37 | INDEX FULL SCAN | IDX_PK_PBX_PILOT_DID | 2 | 68 | | 1 (0)| 00:00:01 | | | | | |
    | 38 | BUFFER SORT | | 7 | 168 | | 4 (0)| 00:00:01 | | | | | |
    |* 39 | TABLE ACCESS FULL | VOIP_ABNORM_DISCONN_CD | 7 | 168 | | 2 (0)| 00:00:01 | | | | | |
    | 40 | PX BLOCK ITERATOR | | 7874K| 413M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWC | |
    |* 41 | TABLE ACCESS FULL | HIQ_EVENT_T | 7874K| 413M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWP | |
    |* 42 | HASH JOIN | | 51M| 6052M| | 5612 (4)| 00:01:08 | | | Q1,04 | PCWP | |
    | 43 | BUFFER SORT | | | | | | | | | Q1,04 | PCWC | |
    | 44 | PX RECEIVE | | 13 | 754 | | 5 (0)| 00:00:01 | | | Q1,04 | PCWP | |
    | 45 | PX SEND BROADCAST | :TQ10003 | 13 | 754 | | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
    | 46 | MERGE JOIN CARTESIAN| | 13 | 754 | | 5 (0)| 00:00:01 | | | | | |
    | 47 | INDEX FULL SCAN | IDX_PK_PBX_PILOT_DID | 2 | 68 | | 1 (0)| 00:00:01 | | | | | |
    | 48 | BUFFER SORT | | 7 | 168 | | 4 (0)| 00:00:01 | | | | | |
    |* 49 | TABLE ACCESS FULL | VOIP_ABNORM_DISCONN_CD | 7 | 168 | | 2 (0)| 00:00:01 | | | | | |
    | 50 | PX BLOCK ITERATOR | | 7874K| 495M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWC | |
    |* 51 | TABLE ACCESS FULL | HIQ_EVENT_T | 7874K| 495M| | 5546 (3)| 00:01:07 | 1 | 3 | Q1,04 | PCWP | |
    Predicate Information (identified by operation id):
    12 - access("H"."ATTEMPT_INDICATOR_ID"=TO_NUMBER("DCODE"."CDR_COLUMN_18_CODE") AND "DCODE"."CDR_COLUMN_19_CODE"="H"."RELEASE_CAUSE_ID" AND
    "TPILOT"."DID_NUM"="H"."TERM_NUM")
    filter("DCODE"."EFF_START_DT"<="H"."RETENTION_TS" AND "DCODE"."EFF_END_DT">"H"."RETENTION_TS" AND "TPILOT"."EFF_START_DT"<="H"."RETENTION_TS" AND
    "TPILOT"."EFF_END_DT">"H"."RETENTION_TS")
    19 - filter("DCODE"."ABNORM_DISCONN_IND"='N')
    21 - filter("HIQ_RECORD_TYPE_ID"='00000000' AND ("H"."RETENTION_TS">=TO_DATE('2009-01-01 23:59:59', 'yyyy-mm-dd hh24:mi:ss') AND
    "H"."RETENTION_TS"<TO_DATE('2011-02-14 23:59:59', 'yyyy-mm-dd hh24:mi:ss') OR "H"."CALL_RLSE_TS">=TIMESTAMP'2009-01-01 23:59:59' AND
    "H"."RETENTION_TS">=TO_DATE('2008-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')))
    22 - access("H"."ATTEMPT_INDICATOR_ID"=TO_NUMBER("DCODE"."CDR_COLUMN_18_CODE") AND "DCODE"."CDR_COLUMN_19_CODE"="H"."RELEASE_CAUSE_ID" AND
    "TPILOT"."DID_NUM"="H"."TERM_NUM")
    filter("DCODE"."EFF_START_DT"<="H"."RETENTION_TS" AND "DCODE"."EFF_END_DT">"H"."RETENTION_TS" AND "TPILOT"."EFF_START_DT"<="H"."RETENTION_TS" AND
    "TPILOT"."EFF_END_DT">"H"."RETENTION_TS")
    29 - filter("DCODE"."ABNORM_DISCONN_IND"='N')
    31 - filter("HIQ_RECORD_TYPE_ID"='00000000' AND ("H"."RETENTION_TS">=TO_DATE('2009-01-01 23:59:59', 'yyyy-mm-dd hh24:mi:ss') AND
    "H"."RETENTION_TS"<TO_DATE('2011-02-14 23:59:59', 'yyyy-mm-dd hh24:mi:ss') OR "H"."CALL_RLSE_TS">=TIMESTAMP'2009-01-01 23:59:59' AND
    "H"."RETENTION_TS">=TO_DATE('2008-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')))
    32 - access("H"."ATTEMPT_INDICATOR_ID"=TO_NUMBER("DCODE"."CDR_COLUMN_18_CODE") AND "DCODE"."CDR_COLUMN_19_CODE"="H"."RELEASE_CAUSE_ID" AND
    "PILOT"."DID_NUM"="H"."ORIG_NUM")
    filter("DCODE"."EFF_START_DT"<="H"."RETENTION_TS" AND "DCODE"."EFF_END_DT">"H"."RETENTION_TS" AND "PILOT"."EFF_START_DT"<="H"."RETENTION_TS" AND
    "PILOT"."EFF_END_DT">"H"."RETENTION_TS")
    39 - filter("DCODE"."ABNORM_DISCONN_IND"='N')
    41 - filter("HIQ_RECORD_TYPE_ID"='00000000' AND ("H"."RETENTION_TS">=TO_DATE('2009-01-01 23:59:59', 'yyyy-mm-dd hh24:mi:ss') AND
    "H"."RETENTION_TS"<TO_DATE('2011-02-14 23:59:59', 'yyyy-mm-dd hh24:mi:ss') OR "H"."CALL_RLSE_TS">=TIMESTAMP'2009-01-01 23:59:59' AND
    "H"."RETENTION_TS">=TO_DATE('2008-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')))
    42 - access("H"."ATTEMPT_INDICATOR_ID"=TO_NUMBER("DCODE"."CDR_COLUMN_18_CODE") AND "DCODE"."CDR_COLUMN_19_CODE"="H"."RELEASE_CAUSE_ID" AND
    "PILOT"."DID_NUM"="H"."ORIG_NUM")
    filter("DCODE"."EFF_START_DT"<="H"."RETENTION_TS" AND "DCODE"."EFF_END_DT">"H"."RETENTION_TS" AND "PILOT"."EFF_START_DT"<="H"."RETENTION_TS" AND
    "PILOT"."EFF_END_DT">"H"."RETENTION_TS")
    49 - filter("DCODE"."ABNORM_DISCONN_IND"='N')
    51 - filter("HIQ_RECORD_TYPE_ID"='00000000' AND ("H"."RETENTION_TS">=TO_DATE('2009-01-01 23:59:59', 'yyyy-mm-dd hh24:mi:ss') AND
    "H"."RETENTION_TS"<TO_DATE('2011-02-14 23:59:59', 'yyyy-mm-dd hh24:mi:ss') OR "H"."CALL_RLSE_TS">=TIMESTAMP'2009-01-01 23:59:59' AND
    "H"."RETENTION_TS">=TO_DATE('2008-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')))

  • For which tables we allowed buffer

    hi gurus
    plz inform me
    for which tables we allowed buffer
    thank you
    kals.

    Hi
    <b>Table buffering</b>
    Advantages of buffering
    Concept of buffering
    Buffering types
    Buffer synchronization
    <b>Database access using Buffer concept</b>
    Buffering allows you to access data quicker by letting you
    access it from the application server instead of the database.
    <b>Advantages of buffering</b>
    Table buffering increases the performance when the records of the table are read.
    As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
    If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
    Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
    <b>Concept of buffering</b>
    <b>The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
    The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
    With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
    With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
    With single-record buffering, only the record that was accessed is loaded into the buffer.</b><b>Buffering types</b>
    With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
    When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
    Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
    The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
    With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
    A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
    Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
    The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
    Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
    If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
    You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
    <b>Synchronizing local buffers</b>
    The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
    If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
    Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
    If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.
    <b>Reward if usefull</b>

  • When it is beter to buffer the table

    hi
    when it is beter to buffer the table

    Hi
    <b>Table buffering</b>
    Advantages of buffering
    Concept of buffering
    Buffering types
    Buffer synchronization
    <b>Database access using Buffer concept</b>
    Buffering allows you to access data quicker by letting you
    access it from the application server instead of the database.
    <b>Advantages of buffering</b>
    Table buffering increases the performance when the records of the table are read.
    As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
    If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
    Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
    <b>Concept of buffering</b>
    The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
    The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
    With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
    With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
    With single-record buffering, only the record that was accessed is loaded into the buffer.
    <b>Buffering types</b>
    With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
    When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
    Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
    The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
    With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
    A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
    Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
    The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
    Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
    If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
    You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
    <b>Synchronizing local buffers</b>
    The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
    If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
    Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
    If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.
    <b>Using buffered tables improves the performance considerably.</b>
    Bypassing the buffer increases the network considerably
    SELECT SINGLE * FROM T100 INTO T100_WA
      BYPASSING BUFFER
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    The above mentioned code can be more optimized by using the following code
    SELECT SINGLE * FROM T100  INTO T100_WA
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    <b>Optimizing the load of the database</b>
    <b>Using table buffering</b>
         Using buffered tables improves the performance considerably. Note that in some cases a statement can not be used with a buffered table, so when using these statements the buffer will be bypassed. These statements are:
    Select DISTINCT
    ORDER BY / GROUP BY / HAVING clause
    Any WHERE clause that contains a sub query or IS NULL expression
    JOIN s
    A SELECT... FOR UPDATE
         If you wan t to explicitly bypass the buffer, use the BYPASS BUFFER addition to the SELECT clause.
    <b>Reward if useful</b>

  • Report performance issue in oracle database 10g to 11g

    Hi All,
    We have one test instance for database 10g where the report is working fine below is the plan for report.
    SELECT STATEMENT
    VIEW APPS
    SORT UNIQUE
    UNION-ALL
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS FULL ONT.OE_ORDER_LINES_ALL
    NESTED LOOPS ANTI
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID MRP.MRP_GROSS_REQUIREMENTS
    INDEX SKIP SCAN MRP.MRP_GROSS_REQUIREMENTS_N2
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    We have one more instance whose database is 11g and the same report is migrated but it is taking too long time to execute the report output. Please advise why it is happening even why the plan is difference.
    SELECT STATEMENT
    VIEW APPS
    SORT UNIQUE
    UNION-ALL
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_B_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_TL_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.BOM_STRUCTURES_B
    INDEX RANGE SCAN BOM.BOM_STRUCTURES_B_N2
    SORT AGGREGATE
    INDEX RANGE SCAN BOM.BOM_OPERATIONAL_ROUTINGS_U2
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    SORT AGGREGATE
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT AGGREGATE
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT AGGREGATE
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID MRP.MRP_ASSIGNMENT_SETS
    INDEX UNIQUE SCAN MRP.MRP_ASSIGNMENT_SETS_U2
    INDEX RANGE SCAN MRP.MRP_SR_ASSIGNMENTS_N3
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID PO.PO_APPROVED_SUPPLIER_LIST
    INDEX RANGE SCAN PO.PO_APPROVED_SUPPLIER_LIST_N1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    HASH JOIN
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    TABLE ACCESS FULL ONT.OE_ORDER_LINES_ALL
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_B_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_TL_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    TABLE ACCESS BY INDEX ROWID BOM.BOM_STRUCTURES_B
    INDEX RANGE SCAN BOM.BOM_STRUCTURES_B_N2
    INDEX RANGE SCAN BOM.BOM_OPERATIONAL_ROUTINGS_U2
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT UNIQUE NOSORT
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID MRP.MRP_ASSIGNMENT_SETS
    INDEX UNIQUE SCAN MRP.MRP_ASSIGNMENT_SETS_U2
    INDEX RANGE SCAN MRP.MRP_SR_ASSIGNMENTS_N3
    SORT UNIQUE NOSORT
    TABLE ACCESS BY INDEX ROWID PO.PO_APPROVED_SUPPLIER_LIST
    INDEX RANGE SCAN PO.PO_APPROVED_SUPPLIER_LIST_N1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    INDEX RANGE SCAN MRP.MRP_GROSS_REQUIREMENTS_N1
    SORT AGGREGATE
    INDEX RANGE SCAN MRP.MRP_GROSS_REQUIREMENTS_N1
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    NESTED LOOPS ANTI
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID MRP.MRP_GROSS_REQUIREMENTS
    INDEX SKIP SCAN MRP.MRP_GROSS_REQUIREMENTS_N2
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    }

    Hi All,
    We have one test instance for database 10g where the report is working fine below is the plan for report.
    SELECT STATEMENT
    VIEW APPS
    SORT UNIQUE
    UNION-ALL
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS FULL ONT.OE_ORDER_LINES_ALL
    NESTED LOOPS ANTI
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID MRP.MRP_GROSS_REQUIREMENTS
    INDEX SKIP SCAN MRP.MRP_GROSS_REQUIREMENTS_N2
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    We have one more instance whose database is 11g and the same report is migrated but it is taking too long time to execute the report output. Please advise why it is happening even why the plan is difference.
    SELECT STATEMENT
    VIEW APPS
    SORT UNIQUE
    UNION-ALL
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_B_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_TL_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.BOM_STRUCTURES_B
    INDEX RANGE SCAN BOM.BOM_STRUCTURES_B_N2
    SORT AGGREGATE
    INDEX RANGE SCAN BOM.BOM_OPERATIONAL_ROUTINGS_U2
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    SORT AGGREGATE
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT AGGREGATE
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT AGGREGATE
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID MRP.MRP_ASSIGNMENT_SETS
    INDEX UNIQUE SCAN MRP.MRP_ASSIGNMENT_SETS_U2
    INDEX RANGE SCAN MRP.MRP_SR_ASSIGNMENTS_N3
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID PO.PO_APPROVED_SUPPLIER_LIST
    INDEX RANGE SCAN PO.PO_APPROVED_SUPPLIER_LIST_N1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    HASH JOIN
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    TABLE ACCESS FULL ONT.OE_ORDER_LINES_ALL
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_B_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_TL_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    TABLE ACCESS BY INDEX ROWID BOM.BOM_STRUCTURES_B
    INDEX RANGE SCAN BOM.BOM_STRUCTURES_B_N2
    INDEX RANGE SCAN BOM.BOM_OPERATIONAL_ROUTINGS_U2
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    TABLE ACCESS BY INDEX ROWID BOM.CST_ITEM_COSTS
    INDEX UNIQUE SCAN BOM.CST_ITEM_COSTS_U1
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    FILTER
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    NESTED LOOPS
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_TL
    INDEX RANGE SCAN QP.QP_LIST_HEADERS_TL_U1
    INDEX UNIQUE SCAN QP.QP_LIST_HEADERS_B_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_HEADERS_B
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX SKIP SCAN QP.QP_PRICING_ATTRIBUTES_N11
    INDEX UNIQUE SCAN QP.QP_LIST_LINES_PK
    TABLE ACCESS BY INDEX ROWID QP.QP_LIST_LINES
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    TABLE ACCESS BY INDEX ROWID QP.QP_PRICING_ATTRIBUTES
    INDEX RANGE SCAN QP.QP_PRICING_ATTRIBUTES_N3
    SORT UNIQUE NOSORT
    NESTED LOOPS
    TABLE ACCESS BY INDEX ROWID MRP.MRP_ASSIGNMENT_SETS
    INDEX UNIQUE SCAN MRP.MRP_ASSIGNMENT_SETS_U2
    INDEX RANGE SCAN MRP.MRP_SR_ASSIGNMENTS_N3
    SORT UNIQUE NOSORT
    TABLE ACCESS BY INDEX ROWID PO.PO_APPROVED_SUPPLIER_LIST
    INDEX RANGE SCAN PO.PO_APPROVED_SUPPLIER_LIST_N1
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    TABLE ACCESS BY INDEX ROWID INV.MTL_ONHAND_QUANTITIES_DETAIL
    INDEX RANGE SCAN INV.MTL_ONHAND_QUANTITIES_N6
    SORT AGGREGATE
    INDEX RANGE SCAN MRP.MRP_GROSS_REQUIREMENTS_N1
    SORT AGGREGATE
    INDEX RANGE SCAN MRP.MRP_GROSS_REQUIREMENTS_N1
    NESTED LOOPS
    NESTED LOOPS
    NESTED LOOPS
    INDEX RANGE SCAN INV.MTL_ITEM_CATEGORIES_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORIES_B
    INDEX UNIQUE SCAN INV.MTL_CATEGORIES_B_U1
    INDEX UNIQUE SCAN INV.MTL_CATEGORY_SETS_TL_U1
    TABLE ACCESS BY INDEX ROWID INV.MTL_CATEGORY_SETS_TL
    NESTED LOOPS ANTI
    HASH JOIN
    TABLE ACCESS BY INDEX ROWID MRP.MRP_GROSS_REQUIREMENTS
    INDEX SKIP SCAN MRP.MRP_GROSS_REQUIREMENTS_N2
    NESTED LOOPS
    NESTED LOOPS
    MERGE JOIN CARTESIAN
    TABLE ACCESS FULL INV.MTL_PARAMETERS
    BUFFER SORT
    TABLE ACCESS BY INDEX ROWID APPLSYS.FND_LOOKUP_VALUES
    INDEX RANGE SCAN APPLSYS.FND_LOOKUP_VALUES_U2
    INDEX RANGE SCAN INV.MTL_SYSTEM_ITEMS_B_XX1
    TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS_B
    TABLE ACCESS BY INDEX ROWID ONT.OE_ORDER_LINES_ALL
    INDEX RANGE SCAN ONT.OE_ORDER_LINES_N3
    }

  • At a loss

    I've been asked to look at the following insert statement. If i run the below sql it is taking approx 12000 secs to complete.
    INSERT INTO FACT_DAILY_TMP_LOAD (AGENT_ID
                               ,FTEGROUP_ID
                               ,DATE_ID
                               ,MEASURE_ID
                               ,FACT_START_DATE
                               ,FACT_END_DATE
                               ,MEASURE
                               ,FACT_ID
                               ,CURRENT_FLAG)
           WITH FTE AS (  SELECT   FTE_GROUP, MAX (FTEGROUP_ID) FTE_GROUP_ID
                            FROM   DIM_FTE_GROUP
                        GROUP BY   FTE_GROUP),
                NCC6
                    AS (  SELECT   AGT.AGENT_ID
                                ,FTE.FTE_GROUP_ID
                                ,D.DATE_ID
                                ,M.MEASURE_ID
                                ,TRUNC (SYSDATE) AS FACT_START_DATE
                                ,TO_DATE ('01/01/2400', 'MM/DD/YYYY') AS FACT_END_DATE
                                , (SUM (APP.TALKTIME + APP.POSTCALLPROCESSINGTIME))
                                 / 3600
                                    MEASURE
                                ,'1' AS CURRENT_FLAG
                          FROM   DIM_AGENT AGT
                                ,FTE
                                ,DIM_DATE D
                                ,LOOKUP_MEASURES M
                                ,S_NCC6_IAGENTBYAPPLICATIONSTAT APP
                                ,DIM_CONTACT_TYPE CCT
                                ,S_MD_BUSINESS_GROUPS B
                         WHERE   CCT.CONTACT_TYPE_NATURAL_KEY =
                                    TO_CHAR (APP.APPLICATIONID)
                                 AND CCT.CONTACT_TYPE_SITE = APP.DW_SOURCE_ID
                                 AND TRUNC (APP.TIMESTAMP) >=
                                       CCT.CONTACT_TYPE_START_DATE
                                 AND TRUNC (APP.TIMESTAMP) < CCT.CONTACT_TYPE_END_DATE
                                 AND CCT.CONTACT_TYPE = 'Application'
                                 AND CCT.CONTACT_TYPE_GROUP = B.CONTACT_TYPE_GROUP
                                 AND FTE.FTE_GROUP = B.FTE_GROUP
                                 AND AGT.AGENT_LOGIN =
                                       APP.DW_SOURCE_ID || APP.AGENTLOGIN
                                 AND M.MEASURE_NAME = 'Application Phone Time'
                                 AND TRUNC (APP.TIMESTAMP) = D.DATE_VALUE
                                 AND TRUNC (APP.TIMESTAMP) >= AGT.AGENT_START_DATE
                                 AND TRUNC (APP.TIMESTAMP) < AGT.AGENT_END_DATE
                      GROUP BY   AGT.AGENT_ID
                                ,FTE.FTE_GROUP_ID
                                ,D.DATE_ID
                                ,M.MEASURE_ID
                                ,TRUNC (SYSDATE)
                                ,TO_DATE ('01/01/2400', 'MM/DD/YYYY')
                                ,'1')
           SELECT   NCC6.AGENT_ID
                   ,NCC6.FTE_GROUP_ID
                   ,NCC6.DATE_ID
                   ,NCC6.MEASURE_ID
                   ,NCC6.FACT_START_DATE
                   ,NCC6.FACT_END_DATE
                   ,NCC6.MEASURE
                   ,FACT_SEQ.NEXTVAL
                   ,NCC6.CURRENT_FLAG
             FROM   NCC6, FACT_DAILY F
            WHERE       NCC6.AGENT_ID = F.AGENT_ID(+)
                    AND NCC6.FTE_GROUP_ID = F.FTEGROUP_ID(+)
                    AND NCC6.DATE_ID = F.DATE_ID(+)
                    AND NCC6.MEASURE_ID = F.MEASURE_ID(+)
                    AND F.FACT_ID IS NULL
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        2      0.01       0.02          0          0          0           0
    Execute      2   2283.03   13377.96   58341909  224372086          0           0
    Fetch        0      0.00       0.00          0          0          0           0
    total        4   2283.04   13377.98   58341909  224372086          0           0
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 53 
    Rows     Row Source Operation
          0  LOAD TABLE CONVENTIONAL  (cr=0 pr=0 pw=0 time=0 us)
          0   SEQUENCE  FACT_SEQ (cr=0 pr=0 pw=0 time=0 us)
          0    FILTER  (cr=0 pr=0 pw=0 time=0 us)
       7429     NESTED LOOPS OUTER (cr=34967275 pr=6076272 pw=6076272 time=12064750 us cost=13713 size=99 card=1)
       7429      VIEW  (cr=176175 pr=50901 pw=50901 time=319 us cost=6294 size=160 card=2)
       7429       SORT GROUP BY (cr=176175 pr=50901 pw=50901 time=199 us cost=6294 size=434 card=2)
    1085593        NESTED LOOPS  (cr=176175 pr=50901 pw=50901 time=92888 us)
    1085593         NESTED LOOPS  (cr=31519 pr=50893 pw=50893 time=67769 us cost=6293 size=434 card=2)
    1085593          HASH JOIN  (cr=23076 pr=50893 pw=50893 time=34342 us cost=6289 size=410 card=2)
    1083095           HASH JOIN  (cr=23023 pr=23008 pw=23008 time=37976 us cost=6272 size=79650 card=450)
         62            HASH JOIN  (cr=38 pr=34 pw=34 time=18 us cost=16 size=7252 card=49)
          9             HASH JOIN  (cr=15 pr=13 pw=13 time=2 us cost=9 size=840 card=10)
         10              MERGE JOIN CARTESIAN (cr=8 pr=7 pw=7 time=2 us cost=4 size=560 card=10)
          1               TABLE ACCESS FULL LOOKUP_MEASURES (cr=7 pr=6 pw=6 time=0 us cost=3 size=23 card=1)
         10               BUFFER SORT (cr=1 pr=1 pw=1 time=1 us cost=1 size=330 card=10)
         10                INDEX FULL SCAN S_MD_BUSINESS_GROUPS_PK (cr=1 pr=1 pw=1 time=1 us cost=1 size=330 card=10)(object id 62096)
         35              VIEW  (cr=7 pr=6 pw=6 time=2 us cost=4 size=980 card=35)
         35               SORT GROUP BY (cr=7 pr=6 pw=6 time=0 us cost=4 size=665 card=35)
         67                TABLE ACCESS FULL DIM_FTE_GROUP (cr=7 pr=6 pw=6 time=1 us cost=3 size=1273 card=67)
         98             TABLE ACCESS FULL DIM_CONTACT_TYPE (cr=23 pr=21 pw=21 time=1 us cost=7 size=6272 card=98)
    2371773            TABLE ACCESS FULL S_NCC6_IAGENTBYAPPLICATIONSTAT (cr=22985 pr=22974 pw=22974 time=42357 us cost=6249 size=68657790 card=2367510)
       3019           TABLE ACCESS FULL DIM_AGENT (cr=53 pr=0 pw=0 time=12 us cost=16 size=84532 card=3019)
    1085593          INDEX RANGE SCAN IDX_DIM_DATE_DATE_VALUE (cr=8443 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 80092)
    1085593         TABLE ACCESS BY INDEX ROWID DIM_DATE (cr=144656 pr=8 pw=8 time=0 us cost=2 size=12 card=1)
       7429      TABLE ACCESS BY INDEX ROWID FACT_DAILY (cr=34791100 pr=6025371 pw=6025371 time=0 us cost=13713 size=19 card=1)
    67301310       BITMAP CONVERSION TO ROWIDS (cr=40957 pr=8416 pw=8416 time=180717 us)
    1188361        BITMAP INDEX SINGLE VALUE IDX_FACT_DAILY_AGENT_ID (cr=40957 pr=8416 pw=8416 time=93249 us)(object id 109729)if I run the select part of the statement it takes <30 secs.
    WITH FTE AS (  SELECT   FTE_GROUP, MAX (FTEGROUP_ID) FTE_GROUP_ID
                            FROM   DIM_FTE_GROUP
                        GROUP BY   FTE_GROUP),
                NCC6
                    AS (  SELECT   AGT.AGENT_ID
                                ,FTE.FTE_GROUP_ID
                                ,D.DATE_ID
                                ,M.MEASURE_ID
                                ,TRUNC (SYSDATE) AS FACT_START_DATE
                                ,TO_DATE ('01/01/2400', 'MM/DD/YYYY') AS FACT_END_DATE
                                , (SUM (APP.TALKTIME + APP.POSTCALLPROCESSINGTIME))
                                 / 3600
                                    MEASURE
                                ,'1' AS CURRENT_FLAG
                          FROM   DIM_AGENT AGT
                                ,FTE
                                ,DIM_DATE D
                                ,LOOKUP_MEASURES M
                                ,S_NCC6_IAGENTBYAPPLICATIONSTAT APP
                                ,DIM_CONTACT_TYPE CCT
                                ,S_MD_BUSINESS_GROUPS B
                         WHERE   CCT.CONTACT_TYPE_NATURAL_KEY =
                                    TO_CHAR (APP.APPLICATIONID)
                                 AND CCT.CONTACT_TYPE_SITE = APP.DW_SOURCE_ID
                                 AND TRUNC (APP.TIMESTAMP) >=
                                       CCT.CONTACT_TYPE_START_DATE
                                 AND TRUNC (APP.TIMESTAMP) < CCT.CONTACT_TYPE_END_DATE
                                 AND CCT.CONTACT_TYPE = 'Application'
                                 AND CCT.CONTACT_TYPE_GROUP = B.CONTACT_TYPE_GROUP
                                 AND FTE.FTE_GROUP = B.FTE_GROUP
                                 AND AGT.AGENT_LOGIN =
                                       APP.DW_SOURCE_ID || APP.AGENTLOGIN
                                 AND M.MEASURE_NAME = 'Application Phone Time'
                                 AND TRUNC (APP.TIMESTAMP) = D.DATE_VALUE
                                 AND TRUNC (APP.TIMESTAMP) >= AGT.AGENT_START_DATE
                                 AND TRUNC (APP.TIMESTAMP) < AGT.AGENT_END_DATE
                      GROUP BY   AGT.AGENT_ID
                                ,FTE.FTE_GROUP_ID
                                ,D.DATE_ID
                                ,M.MEASURE_ID
                                ,TRUNC (SYSDATE)
                                ,TO_DATE ('01/01/2400', 'MM/DD/YYYY')
                                ,'1')
           SELECT   NCC6.AGENT_ID
                   ,NCC6.FTE_GROUP_ID
                   ,NCC6.DATE_ID
                   ,NCC6.MEASURE_ID
                   ,NCC6.FACT_START_DATE
                   ,NCC6.FACT_END_DATE
                   ,NCC6.MEASURE
                   ,FACT_SEQ.NEXTVAL
                   ,NCC6.CURRENT_FLAG
             FROM   NCC6, FACT_DAILY F
            WHERE       NCC6.AGENT_ID = F.AGENT_ID(+)
                    AND NCC6.FTE_GROUP_ID = F.FTEGROUP_ID(+)
                    AND NCC6.DATE_ID = F.DATE_ID(+)
                    AND NCC6.MEASURE_ID = F.MEASURE_ID(+)
                    AND F.FACT_ID IS NULL
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.03          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1     22.93      27.28      78033     293568          0           0
    total        3     22.95      27.32      78033     293568          0           0
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 53 
    Rows     Row Source Operation
          0  SEQUENCE  FACT_SEQ (cr=293568 pr=78033 pw=78033 time=0 us)
          0   FILTER  (cr=293568 pr=78033 pw=78033 time=0 us)
      41559    HASH JOIN OUTER (cr=293568 pr=78033 pw=78033 time=3123 us cost=13975 size=99 card=1)
      41559     VIEW  (cr=265362 pr=49831 pw=49831 time=362 us cost=6298 size=320 card=4)
      41559      HASH GROUP BY (cr=265362 pr=49831 pw=49831 time=138 us cost=6298 size=208 card=4)
    1085593       VIEW  VM_NWVW_0 (cr=265362 pr=48961 pw=48961 time=9409 us cost=6297 size=208 card=4)
    1085593        HASH GROUP BY (cr=265362 pr=48961 pw=48961 time=5442 us cost=6297 size=1132 card=4)
    1734094         NESTED LOOPS  (cr=265362 pr=22981 pw=22981 time=157012 us)
    1734094          NESTED LOOPS  (cr=38661 pr=22981 pw=22981 time=126203 us cost=6296 size=1132 card=4)
    1734094           HASH JOIN  (cr=23068 pr=22980 pw=22980 time=82095 us cost=6288 size=1020 card=4)
       3019            TABLE ACCESS FULL DIM_AGENT (cr=53 pr=0 pw=0 time=10 us cost=16 size=132836 card=3019)
    1730676            HASH JOIN  (cr=23015 pr=22980 pw=22980 time=30583 us cost=6271 size=181671 card=861)
        149             HASH JOIN  (cr=38 pr=6 pw=6 time=17 us cost=15 size=15159 card=93)
         17              HASH JOIN  (cr=15 pr=6 pw=6 time=1 us cost=8 size=1653 card=19)
         10               MERGE JOIN CARTESIAN (cr=8 pr=0 pw=0 time=1 us cost=4 size=680 card=10)
          1                TABLE ACCESS FULL LOOKUP_MEASURES (cr=7 pr=0 pw=0 time=0 us cost=3 size=23 card=1)
         10                BUFFER SORT (cr=1 pr=0 pw=0 time=1 us cost=1 size=450 card=10)
         10                 INDEX FULL SCAN S_MD_BUSINESS_GROUPS_PK (cr=1 pr=0 pw=0 time=0 us cost=1 size=450 card=10)(object id 62096)
         67               TABLE ACCESS FULL DIM_FTE_GROUP (cr=7 pr=6 pw=6 time=1 us cost=3 size=1273 card=67)
         98              TABLE ACCESS FULL DIM_CONTACT_TYPE (cr=23 pr=0 pw=0 time=3 us cost=7 size=7448 card=98)
    2371773             TABLE ACCESS FULL S_NCC6_IAGENTBYAPPLICATIONSTAT (cr=22977 pr=22974 pw=22974 time=6331 us cost=6249 size=113640480 card=2367510)
    1734094           INDEX RANGE SCAN IDX_DIM_DATE_DATE_VALUE (cr=15593 pr=1 pw=1 time=0 us cost=1 size=0 card=1)(object id 80092)
    1734094          TABLE ACCESS BY INDEX ROWID DIM_DATE (cr=226701 pr=0 pw=0 time=0 us cost=2 size=28 card=1)
    1170540     TABLE ACCESS FULL FACT_DAILY (cr=28206 pr=28202 pw=28202 time=10852 us cost=7674 size=19953743 card=1050197)Is there something blatantly wrong in the initial statement that is causing this issue?
    Thanks,
    Keith

    Hi Guys,
    Just to to give you an update I added the hint /*+ LEADING(E) NO_QUERY_TRANSFORMATION */ to the nested selects and my query now runs in 24 secs.
    I don't really undertsand why this is, I just read the notes that Dom referred to and it was mentioned there so I tried it.
    I really don't know why my explain plan changed so dramatically in the first place.
    Cheers,
    Keith
    New explain plan:
    INSERT STATEMENT ()
    LOAD TABLE CONVENTIONAL ()                                                                FACT_DAILY_TMP_LOAD
      SEQUENCE ()                                                                              FACT_SEQ
       FILTER ()
        MERGE JOIN (OUTER)
         VIEW ()
          SORT (GROUP BY)
           VIEW ()                                                                             VM_NWVW_0
            SORT (GROUP BY)
             NESTED LOOPS ()
              MERGE JOIN ()
               SORT (JOIN)
                MERGE JOIN ()
                 SORT (JOIN)
                  NESTED LOOPS ()
                   NESTED LOOPS ()
                    NESTED LOOPS (
                     TABLE ACCESS                                                              DIM_CONTACT_TYPE
                     TABLE ACCESS                                                              S_NCC6_IAGENTBYAPPLICATIONSTAT
                      AND-EQUAL ()
                       INDEX (RANG                                                             S_NCC6_IAGENTBYAPPLICATI_FIDX2
                       INDEX (RANG                                                             S_NCC6_IAGENTBYAPPLICATI_IDX3
                    TABLE ACCESS (                                                             DIM_DATE
                     INDEX (RANGE                                                              IDX_DIM_DATE_DATE_VALUE
                   INDEX (RANGE SC                                                             S_MD_BUSINESS_GROUPS_PK
                 FILTER ()
                  SORT (JOIN)
                   TABLE ACCESS (F                                                             DIM_AGENT
               SORT (JOIN)
                TABLE ACCESS (FULL                                                             DIM_FTE_GROUP
              TABLE ACCESS (FULL)                                                              LOOKUP_MEASURES
         SORT (JOIN)
          TABLE ACCESS (FULL)                                                                  FACT_DAILY
    33 rows selected.

  • Error while executing a sql query for select

    HI All,
    ORA-01652: unable to extend temp segment by 128 in tablespace PSTEMP i'm getting this error while i'm executing the sql query for selecting the data.

    I am having 44GB of temp space, while executing the below query my temp space is getting full, Expert please let us know how the issue can be resolved..
    1. I dont want to increase the temp space
    2. I need to tune the query, please provide your recomendations.
    insert /*+APPEND*/ into CST_DSA.HIERARCHY_MISMATCHES
    (REPORT_NUM,REPORT_TYPE,REPORT_DESC,GAP,CARRIED_ITEMS,CARRIED_ITEM_TYPE,NO_OF_ROUTE_OF_CARRIED_ITEM,CARRIED_ITEM_ROUTE_NO,CARRIER_ITEMS,CARRIER_ITEM_TYPE,CARRIED_ITEM_PROTECTION_TYPE,SOURCE_SYSTEM)
    select
    REPORTNUMBER,REPORTTYPE,REPORTDESCRIPTION ,NULL,
    carried_items,carried_item_type,no_of_route_of_carried_item,carried_item_route_no,carrier_items,
    carrier_item_type,carried_item_protection_type,'PACS'
    from
    (select distinct
    c.REPORTNUMBER,c.REPORTTYPE,c.REPORTDESCRIPTION ,NULL,
    a.carried_items,a.carried_item_type,a.no_of_route_of_carried_item,a.carried_item_route_no,a.carrier_items,
    a.carrier_item_type,a.carried_item_protection_type,'PACS'
    from CST_ASIR.HIERARCHY_asir a,CST_DSA.M_PB_CIRCUIT_ROUTING b ,CST_DSA.REPORT_METADATA c
    where a.carrier_item_type in('Connection') and a.carried_item_type in('Service')
    AND a.carrier_items=b.mux
    and c.REPORTNUMBER=(case
    when a.carrier_item_type in ('ServicePackage','Service','Connection') then 10
    else 20
    end)
    and a.carrier_items not in (select carried_items from CST_ASIR.HIERARCHY_asir where carried_item_type in('Connection') ))A
    where not exists
    (select *
    from CST_DSA.HIERARCHY_MISMATCHES B where
    A.REPORTNUMBER=B.REPORT_NUM and
    A.REPORTTYPE=B.REPORT_TYPE and
    A.REPORTDESCRIPTION=B.REPORT_DESC and
    A.CARRIED_ITEMS=B.CARRIED_ITEMS and
    A.CARRIED_ITEM_TYPE=B.CARRIED_ITEM_TYPE and
    A.NO_OF_ROUTE_OF_CARRIED_ITEM=B.NO_OF_ROUTE_OF_CARRIED_ITEM and
    A.CARRIED_ITEM_ROUTE_NO=B.CARRIED_ITEM_ROUTE_NO and
    A.CARRIER_ITEMS=B.CARRIER_ITEMS and
    A.CARRIER_ITEM_TYPE=B.CARRIER_ITEM_TYPE and
    A.CARRIED_ITEM_PROTECTION_TYPE=B.CARRIED_ITEM_PROTECTION_TYPE
    AND B.SOURCE_SYSTEM='PACS'
    Explain Plan
    ==========
    Plan
    INSERT STATEMENT ALL_ROWSCost: 129 Bytes: 1,103 Cardinality: 1                                                        
         20 LOAD AS SELECT CST_DSA.HIERARCHY_MISMATCHES                                                   
              19 PX COORDINATOR                                              
                   18 PX SEND QC (RANDOM) PARALLEL_TO_SERIAL SYS.:TQ10002 :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1                                         
                        17 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1                                    
                             15 HASH JOIN RIGHT ANTI NA PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,098 Cardinality: 1                               
                                  4 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 63 Bytes: 359,283 Cardinality: 15,621                          
                                       3 PX SEND BROADCAST PARALLEL_TO_PARALLEL SYS.:TQ10001 :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621                     
                                            2 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621                
                                                 1 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621           
                                  14 NESTED LOOPS ANTI PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 40,256,600 Cardinality: 37,448                          
                                       11 HASH JOIN PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 6,366,160 Cardinality: 37,448                     
                                            8 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1002               
                                                 7 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 1 Bytes: 214 Cardinality: 2           
                                                      6 PX SEND BROADCAST PARALLEL_FROM_SERIAL SYS.:TQ10000 Cost: 1 Bytes: 214 Cardinality: 2      
                                                           5 INDEX FULL SCAN INDEX CST_DSA.IDX$$_06EF0005 Cost: 1 Bytes: 214 Cardinality: 2
                                            10 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448                
                                                 9 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448           
                                       13 TABLE ACCESS BY INDEX ROWID TABLE PARALLEL_COMBINED_WITH_PARENT CST_DSA.HIERARCHY_MISMATCHES :Q1002Cost: 0 Bytes: 905 Cardinality: 1                     
                                            12 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT SYS.HIERARCHY_MISMATCHES_IDX3 :Q1002Cost: 0 Cardinality: 1                
                             16 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT CST_DSA.IDX$$_06EF0001 :Q1002Cost: 1 Bytes: 5 Cardinality: 1

  • Help optimizing query with function

    Hello experts,
    I need your help optmizing this query which has a condition that matches on results of non-deterministic function. The non-deterministic functino is fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY. Values that it returns depends on contents of a table, so I can't really create a function index.
    Any input will be appreciated. Thanks in advance!
    Sorry I couln't format the query plan properly. Can somebody advise how? Thanks again!
    Giovanni
    explain plan for
    WITH tg AS
    (SELECT taxgroup_code FROM taxgroup
    WHERE taxgroup_code = 'TAXGROUP2' --?
    AND taxgroup_delete_ind = 'N' AND taxgroup_active_ind = 'A'),
    le_hb AS
    (SELECT tgi.taxgroup_code, tgi.legalentity_id, tgi.hyperionbase_id, ou.orgunit_code, ou.hyperionbase_code
    FROM tg, taxgroupitem tgi, orgunit_vw ou
    WHERE tg.taxgroup_code = tgi.taxgroup_code
    AND tgi.legalentity_id = ou.legalentity_id AND tgi.hyperionbase_id = ou.hyperionbase_id
    UNION
    SELECT tgi.taxgroup_code, tgi.legalentity_id, ou.hyperionbase_id, ou.orgunit_code, ou.hyperionbase_code
    FROM tg, taxgroupitem tgi, orgunit_vw ou
    WHERE tg.taxgroup_code = tgi.taxgroup_code
    AND tgi.legalentity_id = ou.legalentity_id AND tgi.hyperionbase_id IS NULL),
    au AS
    (SELECT appusage_code FROM appusage WHERE appusage_code = 'CONSOLIDATION'),
    prs AS
    (SELECT prs_key,
    (CASE WHEN instr(prs_key, ':') = 0 THEN prs_key
    ELSE SUBSTR(prs_key, 1, (instr(prs_key, ':')-1) ) END) first_val
    FROM
    (SELECT fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(164415 --?
    ) prs_key
    FROM dual
    grs AS
    (SELECT prs.*, fd.fielddata_group_sequence fd_grpseq
    FROM prs, fielddata fd, le_hb
    WHERE prs.first_val = fd.fielddata_value
    AND le_hb.legalentity_id = fd.legalentity_id
    AND le_hb.hyperionbase_id = fd.hyperionbase_id),
    fdk AS
    (SELECT
    cd.celldef_id, fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_group_sequence) fd_key,
    fd.fielddata_value fd_val, fd.fielddata_group_sequence fd_grpseq,
    ROW_NUMBER() OVER (PARTITION BY cd.celldef_id, fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_group_sequence)
    ORDER BY fd.fielddata_group_sequence) rn,
    grs.prs_key
    FROM le_hb, grs, fielddata fd, tablecell tc, celldef cd, tabledef td, appusage au
    WHERE le_hb.legalentity_id = fd.legalentity_id AND le_hb.hyperionbase_id = fd.hyperionbase_id
    AND fd.fielddata_id = tc.fielddata_id AND tc.celldef_id = cd.celldef_id
    AND cd.tabledef_id = td.tabledef_id
    AND grs.fd_grpseq = fd.fielddata_parent_row_sequence
    and grs.prs_key = fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_parent_row_sequence)
    AND cd.celldef_key_ind = 'Y'
    AND fd.fielddata_delete_ind = 'N'
    AND td.tabledef_id = 2265
    fda AS
    (SELECT
    cd.celldef_id, fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_group_sequence) fd_key,
    TO_CHAR(TO_NUMBER(SUM(fd.fielddata_value))) fd_val,
    MIN(fd.fielddata_group_sequence) fd_grpseq,
    grs.prs_key
    FROM le_hb, grs, fielddata fd, tablecell tc, celldef cd, tabledef td
    WHERE le_hb.legalentity_id = fd.legalentity_id AND le_hb.hyperionbase_id = fd.hyperionbase_id
    AND fd.fielddata_id = tc.fielddata_id AND tc.celldef_id = cd.celldef_id
    AND cd.tabledef_id = td.tabledef_id
    AND grs.fd_grpseq = fd.fielddata_parent_row_sequence
    and grs.prs_key = fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_parent_row_sequence)
    AND cd.celldef_adjustable_ind = 'Y'
    AND fd.fielddata_delete_ind = 'N'
    AND td.tabledef_id = 2265
    GROUP BY cd.celldef_id, fedtaxpk.fedtaxpk_pkg.GETFIELDDATAGROUPSEQKEY(fd.fielddata_group_sequence),
    grs.prs_key
    SELECT NULL LEGALENTITY_ID, NULL hyperionbase_id, fdk.celldef_id, TO_CHAR(NULL) role_code, NULL userinfo_id, cd.celldef_adjustable_ind,
    'N' celldef_editable_ind, cd.celldef_filter_code, cd.celldef_validate_rule, cd.celldef_list_code,
    cd.celldef_longstring_ind, aua.appusageaccess_visible_ind celldef_viewable_ind,
    cd.celldef_column_sequence, cd.celldef_column_label,
    cd.celldef_column_sort_order, NULL tablecell_id, fdk.fd_grpseq tablecell_row_sequence, NULL tablecell_row_label,
    'N' tablecell_delete_ind, NULL tablecell_create_by, TO_DATE(NULL) tablecell_create_dt, TO_CHAR(NULL) tablecell_update_by,
    TO_DATE(NULL) tablecell_update_dt, NULL fielddata_id, TO_CHAR(NULL) datatype_code, NULL fielddata_adjref_id,
    fdk.fd_grpseq fielddata_group_sequence, NULL fielddata_parent_row_sequence, NULL lookup_id,
    fdk.fd_val fielddata_value, 'N' fielddata_delete_ind, TO_CHAR(NULL) fielddata_create_by,
    TO_DATE(NULL) fielddata_create_dt, TO_CHAR(NULL) fielddata_update_by, TO_DATE(NULL) fielddata_update_dt,
    fdk.fd_key
    FROM fdk, celldef cd, appusageaccess aua, au
    WHERE fdk.celldef_id = cd.celldef_id
    AND cd.celldef_id = aua.celldef_id
    AND aua.appusage_code = au.appusage_code
    AND fdk.rn = 1
    UNION ALL
    SELECT NULL LEGALENTITY_ID, NULL hyperionbase_id, fda.celldef_id, TO_CHAR(NULL) role_code, NULL userinfo_id, cd.celldef_adjustable_ind,
    'N' celldef_editable_ind, cd.celldef_filter_code, cd.celldef_validate_rule, cd.celldef_list_code,
    cd.celldef_longstring_ind, aua.appusageaccess_visible_ind celldef_viewable_ind,
    cd.celldef_column_sequence, cd.celldef_column_label,
    cd.celldef_column_sort_order, NULL tablecell_id, fda.fd_grpseq tablecell_row_sequence, NULL tablecell_row_label,
    'N' tablecell_delete_ind, NULL tablecell_create_by, TO_DATE(NULL) tablecell_create_dt, TO_CHAR(NULL) tablecell_update_by,
    TO_DATE(NULL) tablecell_update_dt, NULL fielddata_id, TO_CHAR(NULL) datatype_code, NULL fielddata_adjref_id,
    fda.fd_grpseq fielddata_group_sequence, NULL fielddata_parent_row_sequence, NULL lookup_id,
    fda.fd_val fielddata_value, 'N' fielddata_delete_ind, TO_CHAR(NULL) fielddata_create_by,
    TO_DATE(NULL) fielddata_create_dt, TO_CHAR(NULL) fielddata_update_by, TO_DATE(NULL) fielddata_update_dt,
    fda.fd_key
    FROM fda, celldef cd, appusageaccess aua, au
    WHERE fda.celldef_id = cd.celldef_id
    AND cd.celldef_id = aua.celldef_id
    AND aua.appusage_code = au.appusage_code
    ORDER BY fielddata_group_sequence, celldef_column_sequence
    Query Plan:
    Plan hash value: 522363234
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 2 | 6227 | 249 (2)| 00:00:03 |
    | 1 | TEMP TABLE TRANSFORMATION | | | | | |
    | 2 | LOAD AS SELECT | | | | | |
    |* 3 | TABLE ACCESS BY INDEX ROWID | TAXGROUP | 1 | 14 | 1 (0)| 00:00:01 |
    |* 4 | INDEX UNIQUE SCAN | PK_TAXGROUP | 1 | | 0 (0)| 00:00:01 |
    | 5 | LOAD AS SELECT | | | | | |
    | 6 | SORT UNIQUE | | 4 | 224 | 12 (59)| 00:00:01 |
    | 7 | UNION-ALL | | | | | |
    | 8 | TABLE ACCESS BY INDEX ROWID | ORGUNIT | 1 | 29 | 2 (0)| 00:00:01 |
    | 9 | NESTED LOOPS | | 1 | 56 | 5 (0)| 00:00:01 |
    | 10 | NESTED LOOPS | | 1 | 27 | 3 (0)| 00:00:01 |
    | 11 | VIEW | | 1 | 10 | 2 (0)| 00:00:01 |
    | 12 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B51_2EBE182 | 1 | 10 | 2 (0)| 00:00:01 |
    |* 13 | TABLE ACCESS BY INDEX ROWID | TAXGROUPITEM | 1 | 17 | 1 (0)| 00:00:01 |
    |* 14 | INDEX RANGE SCAN | XF1_TAXGROUPITEM_TAXGROUP | 1 | | 0 (0)| 00:00:01 |
    |* 15 | INDEX RANGE SCAN | XF1_ORGUNIT_ID | 1 | | 1 (0)| 00:00:01 |
    | 16 | TABLE ACCESS BY INDEX ROWID | ORGUNIT | 3 | 87 | 2 (0)| 00:00:01 |
    | 17 | NESTED LOOPS | | 3 | 168 | 5 (0)| 00:00:01 |
    | 18 | NESTED LOOPS | | 1 | 27 | 3 (0)| 00:00:01 |
    | 19 | VIEW | | 1 | 10 | 2 (0)| 00:00:01 |
    | 20 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B51_2EBE182 | 1 | 10 | 2 (0)| 00:00:01 |
    |* 21 | TABLE ACCESS BY INDEX ROWID | TAXGROUPITEM | 1 | 17 | 1 (0)| 00:00:01 |
    |* 22 | INDEX RANGE SCAN | XF1_TAXGROUPITEM_TAXGROUP | 1 | | 0 (0)| 00:00:01 |
    |* 23 | INDEX RANGE SCAN | XF1_ORGUNIT_ID | 3 | | 1 (0)| 00:00:01 |
    | 24 | LOAD AS SELECT | | | | | |
    |* 25 | INDEX UNIQUE SCAN | PK_APPUSAGE | 1 | 10 | 0 (0)| 00:00:01 |
    | 26 | LOAD AS SELECT | | | | | |
    |* 27 | TABLE ACCESS BY INDEX ROWID | FIELDDATA | 7 | 147 | 28 (0)| 00:00:01 |
    | 28 | NESTED LOOPS | | 27 | 1269 | 117 (1)| 00:00:02 |
    | 29 | NESTED LOOPS | | 4 | 104 | 4 (0)| 00:00:01 |
    | 30 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
    | 31 | VIEW | | 4 | 104 | 2 (0)| 00:00:01 |
    | 32 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B52_2EBE182 | 4 | 388 | 2 (0)| 00:00:01 |
    |* 33 | INDEX RANGE SCAN | XF11_DATA_LE_HB | 117 | | 12 (0)| 00:00:01 |
    | 34 | SORT ORDER BY | | 2 | 6227 | 248 (51)| 00:00:03 |
    | 35 | UNION-ALL | | | | | |
    | 36 | NESTED LOOPS | | 1 | 4110 | 125 (2)| 00:00:02 |
    | 37 | MERGE JOIN CARTESIAN | | 1 | 4093 | 124 (2)| 00:00:02 |
    | 38 | NESTED LOOPS | | 1 | 4076 | 122 (2)| 00:00:02 |
    |* 39 | VIEW | | 1 | 4043 | 121 (2)| 00:00:02 |
    |* 40 | WINDOW SORT PUSHED RANK | | 1 | 2099 | 121 (2)| 00:00:02 |
    | 41 | MERGE JOIN CARTESIAN | | 1 | 2099 | 120 (1)| 00:00:02 |
    | 42 | NESTED LOOPS | | 1 | 2099 | 119 (1)| 00:00:02 |
    | 43 | NESTED LOOPS | | 1 | 2088 | 118 (1)| 00:00:02 |
    |* 44 | HASH JOIN | | 1 | 2077 | 117 (1)| 00:00:02 |
    |* 45 | TABLE ACCESS BY INDEX ROWID| FIELDDATA | 117 | 3744 | 28 (0)| 00:00:01 |
    | 46 | NESTED LOOPS | | 466 | 28892 | 114 (0)| 00:00:02 |
    | 47 | NESTED LOOPS | | 4 | 120 | 2 (0)| 00:00:01 |
    |* 48 | INDEX UNIQUE SCAN | PK_TABLEDEF | 1 | 4 | 0 (0)| 00:00:01 |
    | 49 | VIEW | | 4 | 104 | 2 (0)| 00:00:01 |
    | 50 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B52_2EBE182 | 4 | 388 | 2 (0)| 00:00:01 |
    |* 51 | INDEX RANGE SCAN | XF11_DATA_LE_HB | 117 | | 12 (0)| 00:00:01 |
    | 52 | VIEW | | 27 | 54405 | 2 (0)| 00:00:01 |
    | 53 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B54_2EBE182 | 27 | 1269 | 2 (0)| 00:00:01 |
    | 54 | TABLE ACCESS BY INDEX ROWID | TABLECELL | 1 | 11 | 1 (0)| 00:00:01 |
    |* 55 | INDEX UNIQUE SCAN | XF1_TBLCEL_DATA | 1 | | 0 (0)| 00:00:01 |
    |* 56 | TABLE ACCESS BY INDEX ROWID | CELLDEF | 1 | 11 | 1 (0)| 00:00:01 |
    |* 57 | INDEX UNIQUE SCAN | PK_CELLDEF | 1 | | 0 (0)| 00:00:01 |
    | 58 | BUFFER SORT | | 5 | | 120 (2)| 00:00:02 |
    | 59 | INDEX FULL SCAN | PK_APPUSAGE | 5 | | 1 (0)| 00:00:01 |
    | 60 | TABLE ACCESS BY INDEX ROWID | CELLDEF | 1 | 33 | 1 (0)| 00:00:01 |
    |* 61 | INDEX UNIQUE SCAN | PK_CELLDEF | 1 | | 0 (0)| 00:00:01 |
    | 62 | BUFFER SORT | | 1 | 17 | 123 (2)| 00:00:02 |
    | 63 | VIEW | | 1 | 17 | 2 (0)| 00:00:01 |
    | 64 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B53_2EBE182 | 1 | 10 | 2 (0)| 00:00:01 |
    | 65 | TABLE ACCESS BY INDEX ROWID | APPUSAGEACCESS | 1 | 17 | 1 (0)| 00:00:01 |
    |* 66 | INDEX UNIQUE SCAN | AK_APPUSAGEACCESS | 1 | | 0 (0)| 00:00:01 |
    | 67 | NESTED LOOPS | | 1 | 2117 | 124 (2)| 00:00:02 |
    | 68 | MERGE JOIN CARTESIAN | | 1 | 2100 | 123 (2)| 00:00:02 |
    | 69 | NESTED LOOPS | | 1 | 2083 | 121 (2)| 00:00:02 |
    | 70 | VIEW | | 1 | 2050 | 120 (2)| 00:00:02 |
    | 71 | HASH GROUP BY | | 1 | 2091 | 120 (2)| 00:00:02 |
    | 72 | NESTED LOOPS | | 1 | 2091 | 119 (1)| 00:00:02 |
    | 73 | NESTED LOOPS | | 1 | 2080 | 118 (1)| 00:00:02 |
    |* 74 | HASH JOIN | | 1 | 2069 | 117 (1)| 00:00:02 |
    |* 75 | TABLE ACCESS BY INDEX ROWID | FIELDDATA | 117 | 3744 | 28 (0)| 00:00:01 |
    | 76 | NESTED LOOPS | | 466 | 28892 | 114 (0)| 00:00:02 |
    | 77 | NESTED LOOPS | | 4 | 120 | 2 (0)| 00:00:01 |
    |* 78 | INDEX UNIQUE SCAN | PK_TABLEDEF | 1 | 4 | 0 (0)| 00:00:01 |
    | 79 | VIEW | | 4 | 104 | 2 (0)| 00:00:01 |
    | 80 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B52_2EBE182 | 4 | 388 | 2 (0)| 00:00:01 |
    |* 81 | INDEX RANGE SCAN | XF11_DATA_LE_HB | 117 | | 12 (0)| 00:00:01 |
    | 82 | VIEW | | 27 | 54189 | 2 (0)| 00:00:01 |
    | 83 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B54_2EBE182 | 27 | 1269 | 2 (0)| 00:00:01 |
    | 84 | TABLE ACCESS BY INDEX ROWID | TABLECELL | 1 | 11 | 1 (0)| 00:00:01 |
    |* 85 | INDEX UNIQUE SCAN | XF1_TBLCEL_DATA | 1 | | 0 (0)| 00:00:01 |
    |* 86 | TABLE ACCESS BY INDEX ROWID | CELLDEF | 1 | 11 | 1 (0)| 00:00:01 |
    |* 87 | INDEX UNIQUE SCAN | PK_CELLDEF | 1 | | 0 (0)| 00:00:01 |
    | 88 | TABLE ACCESS BY INDEX ROWID | CELLDEF | 1 | 33 | 1 (0)| 00:00:01 |
    |* 89 | INDEX UNIQUE SCAN | PK_CELLDEF | 1 | | 0 (0)| 00:00:01 |
    | 90 | BUFFER SORT | | 1 | 17 | 122 (2)| 00:00:02 |
    | 91 | VIEW | | 1 | 17 | 2 (0)| 00:00:01 |
    | 92 | TABLE ACCESS FULL | SYS_TEMP_0FD9D9B53_2EBE182 | 1 | 10 | 2 (0)| 00:00:01 |
    | 93 | TABLE ACCESS BY INDEX ROWID | APPUSAGEACCESS | 1 | 17 | 1 (0)| 00:00:01 |
    |* 94 | INDEX UNIQUE SCAN | AK_APPUSAGEACCESS | 1 | | 0 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    3 - filter("TAXGROUP_DELETE_IND"='N' AND "TAXGROUP_ACTIVE_IND"='A')
    4 - access("TAXGROUP_CODE"='TAXGROUP2')
    13 - filter("TGI"."HYPERIONBASE_ID" IS NOT NULL)
    14 - access("TG"."TAXGROUP_CODE"="TGI"."TAXGROUP_CODE")
    15 - access("TGI"."LEGALENTITY_ID"="OU"."ORGUNIT_ID" AND "TGI"."HYPERIONBASE_ID"="OU"."HYPERIONBASE_ID")
    21 - filter("TGI"."HYPERIONBASE_ID" IS NULL)
    22 - access("TG"."TAXGROUP_CODE"="TGI"."TAXGROUP_CODE")
    23 - access("TGI"."LEGALENTITY_ID"="OU"."ORGUNIT_ID")
    25 - access("APPUSAGE_CODE"='CONSOLIDATION')
    27 - filter("FD"."FIELDDATA_VALUE"=CASE INSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415),':') WHEN 0
    THEN "FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415) ELSE
    SUBSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415),1,INSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(16441
    5),':')-1) END )
    33 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
    "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
    39 - filter("FDK"."RN"=1)
    40 - filter(ROW_NUMBER() OVER ( PARTITION BY "CD"."CELLDEF_ID","FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"
    ."FIELDDATA_GROUP_SEQUENCE") ORDER BY "FD"."FIELDDATA_GROUP_SEQUENCE")<=1)
    44 - access("GRS"."FD_GRPSEQ"="FD"."FIELDDATA_PARENT_ROW_SEQUENCE" AND
    "GRS"."PRS_KEY"="FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"."FIELDDATA_PARENT_ROW_SEQUENCE"))
    45 - filter("FD"."FIELDDATA_DELETE_IND"='N')
    48 - access("TD"."TABLEDEF_ID"=2265)
    51 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
    "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
    55 - access("FD"."FIELDDATA_ID"="TC"."FIELDDATA_ID")
    56 - filter("CD"."TABLEDEF_ID"=2265 AND "CD"."CELLDEF_KEY_IND"='Y')
    57 - access("TC"."CELLDEF_ID"="CD"."CELLDEF_ID")
    61 - access("FDK"."CELLDEF_ID"="CD"."CELLDEF_ID")
    66 - access("AUA"."APPUSAGE_CODE"="AU"."APPUSAGE_CODE" AND "CD"."CELLDEF_ID"="AUA"."CELLDEF_ID")
    74 - access("GRS"."FD_GRPSEQ"="FD"."FIELDDATA_PARENT_ROW_SEQUENCE" AND
    "GRS"."PRS_KEY"="FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"."FIELDDATA_PARENT_ROW_SEQUENCE"))
    75 - filter("FD"."FIELDDATA_DELETE_IND"='N')
    78 - access("TD"."TABLEDEF_ID"=2265)
    81 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
    "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
    85 - access("FD"."FIELDDATA_ID"="TC"."FIELDDATA_ID")
    86 - filter("CD"."TABLEDEF_ID"=2265 AND "CD"."CELLDEF_ADJUSTABLE_IND"='Y')
    87 - access("TC"."CELLDEF_ID"="CD"."CELLDEF_ID")
    89 - access("FDA"."CELLDEF_ID"="CD"."CELLDEF_ID")
    94 - access("AUA"."APPUSAGE_CODE"="AU"."APPUSAGE_CODE" AND "CD"."CELLDEF_ID"="AUA"."CELLDEF_ID")

    Thanks cd.
    Here's the query plan:
    Query Plan:
    Plan hash value: 522363234
    | Id  | Operation                               | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                        |                            |     2 |  6227 |   249   (2)| 00:00:03 |
    |   1 |  TEMP TABLE TRANSFORMATION              |                            |       |       |            |          |
    |   2 |   LOAD AS SELECT                        |                            |       |       |            |          |
    |*  3 |    TABLE ACCESS BY INDEX ROWID          | TAXGROUP                   |     1 |    14 |     1   (0)| 00:00:01 |
    |*  4 |     INDEX UNIQUE SCAN                   | PK_TAXGROUP                |     1 |       |     0   (0)| 00:00:01 |
    |   5 |   LOAD AS SELECT                        |                            |       |       |            |          |
    |   6 |    SORT UNIQUE                          |                            |     4 |   224 |    12  (59)| 00:00:01 |
    |   7 |     UNION-ALL                           |                            |       |       |            |          |
    |   8 |      TABLE ACCESS BY INDEX ROWID        | ORGUNIT                    |     1 |    29 |     2   (0)| 00:00:01 |
    |   9 |       NESTED LOOPS                      |                            |     1 |    56 |     5   (0)| 00:00:01 |
    |  10 |        NESTED LOOPS                     |                            |     1 |    27 |     3   (0)| 00:00:01 |
    |  11 |         VIEW                            |                            |     1 |    10 |     2   (0)| 00:00:01 |
    |  12 |          TABLE ACCESS FULL              | SYS_TEMP_0FD9D9B51_2EBE182 |     1 |    10 |     2   (0)| 00:00:01 |
    |* 13 |         TABLE ACCESS BY INDEX ROWID     | TAXGROUPITEM               |     1 |    17 |     1   (0)| 00:00:01 |
    |* 14 |          INDEX RANGE SCAN               | XF1_TAXGROUPITEM_TAXGROUP  |     1 |       |     0   (0)| 00:00:01 |
    |* 15 |        INDEX RANGE SCAN                 | XF1_ORGUNIT_ID             |     1 |       |     1   (0)| 00:00:01 |
    |  16 |      TABLE ACCESS BY INDEX ROWID        | ORGUNIT                    |     3 |    87 |     2   (0)| 00:00:01 |
    |  17 |       NESTED LOOPS                      |                            |     3 |   168 |     5   (0)| 00:00:01 |
    |  18 |        NESTED LOOPS                     |                            |     1 |    27 |     3   (0)| 00:00:01 |
    |  19 |         VIEW                            |                            |     1 |    10 |     2   (0)| 00:00:01 |
    |  20 |          TABLE ACCESS FULL              | SYS_TEMP_0FD9D9B51_2EBE182 |     1 |    10 |     2   (0)| 00:00:01 |
    |* 21 |         TABLE ACCESS BY INDEX ROWID     | TAXGROUPITEM               |     1 |    17 |     1   (0)| 00:00:01 |
    |* 22 |          INDEX RANGE SCAN               | XF1_TAXGROUPITEM_TAXGROUP  |     1 |       |     0   (0)| 00:00:01 |
    |* 23 |        INDEX RANGE SCAN                 | XF1_ORGUNIT_ID             |     3 |       |     1   (0)| 00:00:01 |
    |  24 |   LOAD AS SELECT                        |                            |       |       |            |          |
    |* 25 |    INDEX UNIQUE SCAN                    | PK_APPUSAGE                |     1 |    10 |     0   (0)| 00:00:01 |
    |  26 |   LOAD AS SELECT                        |                            |       |       |            |          |
    |* 27 |    TABLE ACCESS BY INDEX ROWID          | FIELDDATA                  |     7 |   147 |    28   (0)| 00:00:01 |
    |  28 |     NESTED LOOPS                        |                            |    27 |  1269 |   117   (1)| 00:00:02 |
    |  29 |      NESTED LOOPS                       |                            |     4 |   104 |     4   (0)| 00:00:01 |
    |  30 |       FAST DUAL                         |                            |     1 |       |     2   (0)| 00:00:01 |
    |  31 |       VIEW                              |                            |     4 |   104 |     2   (0)| 00:00:01 |
    |  32 |        TABLE ACCESS FULL                | SYS_TEMP_0FD9D9B52_2EBE182 |     4 |   388 |     2   (0)| 00:00:01 |
    |* 33 |      INDEX RANGE SCAN                   | XF11_DATA_LE_HB            |   117 |       |    12   (0)| 00:00:01 |
    |  34 |   SORT ORDER BY                         |                            |     2 |  6227 |   248  (51)| 00:00:03 |
    |  35 |    UNION-ALL                            |                            |       |       |            |          |
    |  36 |     NESTED LOOPS                        |                            |     1 |  4110 |   125   (2)| 00:00:02 |
    |  37 |      MERGE JOIN CARTESIAN               |                            |     1 |  4093 |   124   (2)| 00:00:02 |
    |  38 |       NESTED LOOPS                      |                            |     1 |  4076 |   122   (2)| 00:00:02 |
    |* 39 |        VIEW                             |                            |     1 |  4043 |   121   (2)| 00:00:02 |
    |* 40 |         WINDOW SORT PUSHED RANK         |                            |     1 |  2099 |   121   (2)| 00:00:02 |
    |  41 |          MERGE JOIN CARTESIAN           |                            |     1 |  2099 |   120   (1)| 00:00:02 |
    |  42 |           NESTED LOOPS                  |                            |     1 |  2099 |   119   (1)| 00:00:02 |
    |  43 |            NESTED LOOPS                 |                            |     1 |  2088 |   118   (1)| 00:00:02 |
    |* 44 |             HASH JOIN                   |                            |     1 |  2077 |   117   (1)| 00:00:02 |
    |* 45 |              TABLE ACCESS BY INDEX ROWID| FIELDDATA                  |   117 |  3744 |    28   (0)| 00:00:01 |
    |  46 |               NESTED LOOPS              |                            |   466 | 28892 |   114   (0)| 00:00:02 |
    |  47 |                NESTED LOOPS             |                            |     4 |   120 |     2   (0)| 00:00:01 |
    |* 48 |                 INDEX UNIQUE SCAN       | PK_TABLEDEF                |     1 |     4 |     0   (0)| 00:00:01 |
    |  49 |                 VIEW                    |                            |     4 |   104 |     2   (0)| 00:00:01 |
    |  50 |                  TABLE ACCESS FULL      | SYS_TEMP_0FD9D9B52_2EBE182 |     4 |   388 |     2   (0)| 00:00:01 |
    |* 51 |                INDEX RANGE SCAN         | XF11_DATA_LE_HB            |   117 |       |    12   (0)| 00:00:01 |
    |  52 |              VIEW                       |                            |    27 | 54405 |     2   (0)| 00:00:01 |
    |  53 |               TABLE ACCESS FULL         | SYS_TEMP_0FD9D9B54_2EBE182 |    27 |  1269 |     2   (0)| 00:00:01 |
    |  54 |             TABLE ACCESS BY INDEX ROWID | TABLECELL                  |     1 |    11 |     1   (0)| 00:00:01 |
    |* 55 |              INDEX UNIQUE SCAN          | XF1_TBLCEL_DATA            |     1 |       |     0   (0)| 00:00:01 |
    |* 56 |            TABLE ACCESS BY INDEX ROWID  | CELLDEF                    |     1 |    11 |     1   (0)| 00:00:01 |
    |* 57 |             INDEX UNIQUE SCAN           | PK_CELLDEF                 |     1 |       |     0   (0)| 00:00:01 |
    |  58 |           BUFFER SORT                   |                            |     5 |       |   120   (2)| 00:00:02 |
    |  59 |            INDEX FULL SCAN              | PK_APPUSAGE                |     5 |       |     1   (0)| 00:00:01 |
    |  60 |        TABLE ACCESS BY INDEX ROWID      | CELLDEF                    |     1 |    33 |     1   (0)| 00:00:01 |
    |* 61 |         INDEX UNIQUE SCAN               | PK_CELLDEF                 |     1 |       |     0   (0)| 00:00:01 |
    |  62 |       BUFFER SORT                       |                            |     1 |    17 |   123   (2)| 00:00:02 |
    |  63 |        VIEW                             |                            |     1 |    17 |     2   (0)| 00:00:01 |
    |  64 |         TABLE ACCESS FULL               | SYS_TEMP_0FD9D9B53_2EBE182 |     1 |    10 |     2   (0)| 00:00:01 |
    |  65 |      TABLE ACCESS BY INDEX ROWID        | APPUSAGEACCESS             |     1 |    17 |     1   (0)| 00:00:01 |
    |* 66 |       INDEX UNIQUE SCAN                 | AK_APPUSAGEACCESS          |     1 |       |     0   (0)| 00:00:01 |
    |  67 |     NESTED LOOPS                        |                            |     1 |  2117 |   124   (2)| 00:00:02 |
    |  68 |      MERGE JOIN CARTESIAN               |                            |     1 |  2100 |   123   (2)| 00:00:02 |
    |  69 |       NESTED LOOPS                      |                            |     1 |  2083 |   121   (2)| 00:00:02 |
    |  70 |        VIEW                             |                            |     1 |  2050 |   120   (2)| 00:00:02 |
    |  71 |         HASH GROUP BY                   |                            |     1 |  2091 |   120   (2)| 00:00:02 |
    |  72 |          NESTED LOOPS                   |                            |     1 |  2091 |   119   (1)| 00:00:02 |
    |  73 |           NESTED LOOPS                  |                            |     1 |  2080 |   118   (1)| 00:00:02 |
    |* 74 |            HASH JOIN                    |                            |     1 |  2069 |   117   (1)| 00:00:02 |
    |* 75 |             TABLE ACCESS BY INDEX ROWID | FIELDDATA                  |   117 |  3744 |    28   (0)| 00:00:01 |
    |  76 |              NESTED LOOPS               |                            |   466 | 28892 |   114   (0)| 00:00:02 |
    |  77 |               NESTED LOOPS              |                            |     4 |   120 |     2   (0)| 00:00:01 |
    |* 78 |                INDEX UNIQUE SCAN        | PK_TABLEDEF                |     1 |     4 |     0   (0)| 00:00:01 |
    |  79 |                VIEW                     |                            |     4 |   104 |     2   (0)| 00:00:01 |
    |  80 |                 TABLE ACCESS FULL       | SYS_TEMP_0FD9D9B52_2EBE182 |     4 |   388 |     2   (0)| 00:00:01 |
    |* 81 |               INDEX RANGE SCAN          | XF11_DATA_LE_HB            |   117 |       |    12   (0)| 00:00:01 |
    |  82 |             VIEW                        |                            |    27 | 54189 |     2   (0)| 00:00:01 |
    |  83 |              TABLE ACCESS FULL          | SYS_TEMP_0FD9D9B54_2EBE182 |    27 |  1269 |     2   (0)| 00:00:01 |
    |  84 |            TABLE ACCESS BY INDEX ROWID  | TABLECELL                  |     1 |    11 |     1   (0)| 00:00:01 |
    |* 85 |             INDEX UNIQUE SCAN           | XF1_TBLCEL_DATA            |     1 |       |     0   (0)| 00:00:01 |
    |* 86 |           TABLE ACCESS BY INDEX ROWID   | CELLDEF                    |     1 |    11 |     1   (0)| 00:00:01 |
    |* 87 |            INDEX UNIQUE SCAN            | PK_CELLDEF                 |     1 |       |     0   (0)| 00:00:01 |
    |  88 |        TABLE ACCESS BY INDEX ROWID      | CELLDEF                    |     1 |    33 |     1   (0)| 00:00:01 |
    |* 89 |         INDEX UNIQUE SCAN               | PK_CELLDEF                 |     1 |       |     0   (0)| 00:00:01 |
    |  90 |       BUFFER SORT                       |                            |     1 |    17 |   122   (2)| 00:00:02 |
    |  91 |        VIEW                             |                            |     1 |    17 |     2   (0)| 00:00:01 |
    |  92 |         TABLE ACCESS FULL               | SYS_TEMP_0FD9D9B53_2EBE182 |     1 |    10 |     2   (0)| 00:00:01 |
    |  93 |      TABLE ACCESS BY INDEX ROWID        | APPUSAGEACCESS             |     1 |    17 |     1   (0)| 00:00:01 |
    |* 94 |       INDEX UNIQUE SCAN                 | AK_APPUSAGEACCESS          |     1 |       |     0   (0)| 00:00:01 |
    ---------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
       3 - filter("TAXGROUP_DELETE_IND"='N' AND "TAXGROUP_ACTIVE_IND"='A')
       4 - access("TAXGROUP_CODE"='TAXGROUP2')
      13 - filter("TGI"."HYPERIONBASE_ID" IS NOT NULL)
      14 - access("TG"."TAXGROUP_CODE"="TGI"."TAXGROUP_CODE")
      15 - access("TGI"."LEGALENTITY_ID"="OU"."ORGUNIT_ID" AND "TGI"."HYPERIONBASE_ID"="OU"."HYPERIONBASE_ID")
      21 - filter("TGI"."HYPERIONBASE_ID" IS NULL)
      22 - access("TG"."TAXGROUP_CODE"="TGI"."TAXGROUP_CODE")
      23 - access("TGI"."LEGALENTITY_ID"="OU"."ORGUNIT_ID")
      25 - access("APPUSAGE_CODE"='CONSOLIDATION')
      27 - filter("FD"."FIELDDATA_VALUE"=CASE INSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415),':') WHEN 0
                  THEN "FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415) ELSE
                  SUBSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(164415),1,INSTR("FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"(16441
                  5),':')-1) END )
      33 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
                  "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
      39 - filter("FDK"."RN"=1)
      40 - filter(ROW_NUMBER() OVER ( PARTITION BY "CD"."CELLDEF_ID","FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"
                  ."FIELDDATA_GROUP_SEQUENCE") ORDER BY "FD"."FIELDDATA_GROUP_SEQUENCE")<=1)
      44 - access("GRS"."FD_GRPSEQ"="FD"."FIELDDATA_PARENT_ROW_SEQUENCE" AND
                  "GRS"."PRS_KEY"="FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"."FIELDDATA_PARENT_ROW_SEQUENCE"))
      45 - filter("FD"."FIELDDATA_DELETE_IND"='N')
      48 - access("TD"."TABLEDEF_ID"=2265)
      51 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
                  "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
      55 - access("FD"."FIELDDATA_ID"="TC"."FIELDDATA_ID")
      56 - filter("CD"."TABLEDEF_ID"=2265 AND "CD"."CELLDEF_KEY_IND"='Y')
      57 - access("TC"."CELLDEF_ID"="CD"."CELLDEF_ID")
      61 - access("FDK"."CELLDEF_ID"="CD"."CELLDEF_ID")
      66 - access("AUA"."APPUSAGE_CODE"="AU"."APPUSAGE_CODE" AND "CD"."CELLDEF_ID"="AUA"."CELLDEF_ID")
      74 - access("GRS"."FD_GRPSEQ"="FD"."FIELDDATA_PARENT_ROW_SEQUENCE" AND
                  "GRS"."PRS_KEY"="FEDTAXPK_PKG"."GETFIELDDATAGROUPSEQKEY"("FD"."FIELDDATA_PARENT_ROW_SEQUENCE"))
      75 - filter("FD"."FIELDDATA_DELETE_IND"='N')
      78 - access("TD"."TABLEDEF_ID"=2265)
      81 - access("LE_HB"."LEGALENTITY_ID"="FD"."LEGALENTITY_ID" AND
                  "LE_HB"."HYPERIONBASE_ID"="FD"."HYPERIONBASE_ID")
      85 - access("FD"."FIELDDATA_ID"="TC"."FIELDDATA_ID")
      86 - filter("CD"."TABLEDEF_ID"=2265 AND "CD"."CELLDEF_ADJUSTABLE_IND"='Y')
      87 - access("TC"."CELLDEF_ID"="CD"."CELLDEF_ID")
      89 - access("FDA"."CELLDEF_ID"="CD"."CELLDEF_ID")
      94 - access("AUA"."APPUSAGE_CODE"="AU"."APPUSAGE_CODE" AND "CD"."CELLDEF_ID"="AUA"."CELLDEF_ID")

  • Help to read TKPROF file in correct way

    Hi,
    I need help to understand what is going wrong.
    I have one query executed with different bind variables values.
    Case 1: Execution time is about 7.5 hours when :v6=:v3=:v4 (these are date bind variables values)
    Case 2: Execution time is about 2 minuteswhen :v6 differs from :v3 and :v4, but :v3=:v4 (these are date bind variables values)
    You can see TKPROF files below
    Case1
    SELECT EK.SECIK AS EK_SECIK,S.SECIK AS S_SECIK,EK.EQKEY1 AS EK_EQKEY1,EK.FROMDATE AS EK_FROMDATE,S.SECSHORT AS S_SECSHORT,S.SECNAME AS S_SECNAME,C.CDY AS C_CDY,C.CSTD AS C_CSTD,P.PAR AS P_PAR,P.PARIK AS P_PARIK,PH.ACCOUNTING_FRAMEWORK AS PH_ACC_FW,NVL(PH.BAL_NOMINAL_NUMBER,0) AS PH_BAL_NOM_NUM,PH.FROM_DATE AS PH_FROM_DATE,PH.POR AS PH_POR,PH.SEC_SHORT_NAME AS PH_SEC_SHORT_NAME,PH.TO_DATE AS PH_TO_DATE,PH.CUSTODY_SHORT_NAME AS PH_CUST_SHORT_NAME,T.TC_CSTD AS T_CSTD,SUM(T.TH_BAL_NOM_NUM) AS T_BAL_NOM_NUM,T.TH_SEC_SHORT_NAME AS T_SEC_SHORT_NAME,PH.POR_REF AS PH_POR_REF,PORT.PORIK AS PORT_PORIK,PORT.PORGRPIK AS PORT_PORGRPIK,PG.PORGRPIK AS PG_PORGRPIK,PG.PORGRPTYPEIK AS PG_PORGRPTYPEIK,PGT.PORGRPTYPEIK AS PGT_PORGRPTYPEIK FROM SCDAT.CUSTODIES C,SCDAT.EQUITYKEYS EK,SCDAT.PARTNERS P,SCDAT.PORTGROUPS PG,SCDAT.PORTGROUPTYPES PGT,(
    SELECT  HOLKEYS.PORIK As POR_REF,
    ACCDEF.ACC As ACCOUNTING_FRAMEWORK,
    NVL(HOLDINGS.BALNOMVAL,0) As BAL_NOMINAL_NUMBER,
    CUSTODIES.CDY As CUSTODY_SHORT_NAME,
    DECODE(HOLDINGS.FINBOOKED,0,'No',1,'Yes',' ') As FINALLY_BOOKED,
    HOLDINGS.FROMDATE As FROM_DATE,
    PORTFOLIOS.POR As POR,
    SECURITIES.SECSHORT As SEC_SHORT_NAME,
    HOLDINGS.TODATE As TO_DATE,
    HOLDINGS.FINBOOKED As X_FINALLY_BOOKED
    FROM HOLDINGS,HOLKEYS,ACCDEF,CUSTODIES,PORTFOLIOS,SECURITIES WHERE HOLDINGS.HOLKEYIK = HOLKEYS.HOLKEYIK AND HOLDINGS.ACCIK = ACCDEF.ACCIK AND HOLKEYS.CDYIK = CUSTODIES.CDYIK AND HOLKEYS.PORIK = PORTFOLIOS.PORIK AND HOLKEYS.SECIK = SECURITIES.SECIK) PH,SCDAT.PORTFOLIOS PORT,SCDAT.SECURITIES S,(SELECT TC.CDY AS TC_CDY,TC.CSTD AS TC_CSTD,SUM(NVL(TH.BAL_NOMINAL_NUMBER,0)) AS TH_BAL_NOM_NUM,TH.FROM_DATE AS TH_FROM_DATE,TH.TO_DATE AS TH_TO_DATE,TH.SEC_SHORT_NAME AS TH_SEC_SHORT_NAME,TH.CUSTODY_SHORT_NAME AS TH_CUST_SHORT_NAME,TP.PAR AS TP_PAR,TP.PARIK AS TP_PARIK FROM SCDAT.CUSTODIES TC,(
    SELECT  ACCDEF.ACC As ACCOUNTING_FRAMEWORK,
    NVL(HOLDINGS.BALNOMVAL,0) As BAL_NOMINAL_NUMBER,
    CUSTODIES.CDY As CUSTODY_SHORT_NAME,
    DECODE(HOLDINGS.FINBOOKED,0,'No',1,'Yes',' ') As FINALLY_BOOKED,
    HOLDINGS.FROMDATE As FROM_DATE,
    SECURITIES.SECSHORT As SEC_SHORT_NAME,
    HOLDINGS.TODATE As TO_DATE,
    HOLDINGS.FINBOOKED As X_FINALLY_BOOKED
    FROM HOLDINGS,HOLKEYS,ACCDEF,CUSTODIES,SECURITIES WHERE HOLDINGS.ACCIK = ACCDEF.ACCIK AND HOLDINGS.HOLKEYIK = HOLKEYS.HOLKEYIK AND HOLKEYS.CDYIK = CUSTODIES.CDYIK AND HOLKEYS.SECIK = SECURITIES.SECIK) TH,SCDAT.PARTNERS TP WHERE TH.CUSTODY_SHORT_NAME = TC.CDY AND TC.CSTD = TP.PARIK AND TH.ACCOUNTING_FRAMEWORK = :v1  AND NOT (NVL(TH.BAL_NOMINAL_NUMBER,0) = :v2 )  AND TH.FROM_DATE <= :v3  AND TH.TO_DATE >= :v4  AND TH.FINALLY_BOOKED = :v5  GROUP BY TC.CDY,TC.CSTD,TH.FROM_DATE,TH.TO_DATE,TH.SEC_SHORT_NAME,TH.CUSTODY_SHORT_NAME,TP.PAR,TP.PARIK) T WHERE EK.SECIK = S.SECIK AND PORT.PORGRPIK = PG.PORGRPIK AND PG.PORGRPTYPEIK = PGT.PORGRPTYPEIK AND S.SECSHORT = PH.SEC_SHORT_NAME AND PH.SEC_SHORT_NAME = T.TH_SEC_SHORT_NAME AND PH.POR_REF = PORT.PORIK AND PH.CUSTODY_SHORT_NAME = C.CDY AND EK.FROMDATE = :v6  AND NOT (EK.EQKEY1 = :v7 )  AND P.PAR = :v8  AND NOT (PGT.PORGRPTYPE IN (:v9 ,:v10  ))  AND PH.ACCOUNTING_FRAMEWORK = :v11   AND NOT (NVL(PH.BAL_NOMINAL_NUMBER,0) = :v12  )  AND PH.FINALLY_BOOKED = :v13   AND EK.FROMDATE >= PH.FROM_DATE AND EK.FROMDATE <= PH.TO_DATE AND C.CSTD = P.PARIK AND C.CSTD = T.TC_CSTD GROUP BY EK.SECIK,S.SECIK,EK.EQKEY1,EK.FROMDATE,S.SECSHORT,S.SECNAME,C.CDY,C.CSTD,P.PAR,P.PARIK,PH.ACCOUNTING_FRAMEWORK,NVL(PH.BAL_NOMINAL_NUMBER,0),PH.FROM_DATE,PH.POR,PH.SEC_SHORT_NAME,PH.TO_DATE,PH.CUSTODY_SHORT_NAME,T.TC_CSTD,T.TH_SEC_SHORT_NAME,PH.POR_REF,PORT.PORIK,PORT.PORGRPIK,PG.PORGRPIK,PG.PORGRPTYPEIK,PGT.PORGRPTYPEIK
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      2.31       2.31          0          0          0           0
    Fetch        1  27398.48   27473.33      11124  250891597          0           0
    total        3  27400.79   27475.65      11124  250891597          0           0
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 171  (SCDAT)
    Number of plan statistics captured: 1
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
             0          0          0  HASH GROUP BY (cr=0 pr=0 pw=0 time=55 us cost=1976 size=251 card=1)
           123        123        123   NESTED LOOPS  (cr=250890161 pr=11086 pw=0 time=35602462 us)
         38622      38622      38622    NESTED LOOPS  (cr=250858945 pr=8664 pw=0 time=4221237335 us cost=1975 size=251 card=1)
          3945       3945       3945     NESTED LOOPS  (cr=250850948 pr=7835 pw=0 time=1967017649 us cost=1937 size=199 card=1)
          3833       3833       3833      HASH JOIN  (cr=42840 pr=6196 pw=0 time=4910380 us cost=1559 size=1956 card=12)
          8667       8667       8667       NESTED LOOPS  (cr=42834 pr=6192 pw=0 time=4254867 us)
          8667       8667       8667        NESTED LOOPS  (cr=34167 pr=6192 pw=0 time=4232686 us cost=1556 size=2156 card=14)
          8667       8667       8667         NESTED LOOPS  (cr=26520 pr=6192 pw=0 time=4206426 us cost=1542 size=2058 card=14)
          8667       8667       8667          NESTED LOOPS  (cr=16041 pr=6192 pw=0 time=4161555 us cost=1528 size=1806 card=14)
         18060      18060      18060           NESTED LOOPS  (cr=16037 pr=6191 pw=0 time=4575478 us cost=1527 size=36504 card=312)
           177        177        177            NESTED LOOPS  (cr=6846 pr=6091 pw=0 time=3909468 us cost=1350 size=1500 card=15)
           177        177        177             NESTED LOOPS  (cr=6490 pr=6091 pw=0 time=3907157 us cost=1320 size=1245 card=15)
           177        177        177              NESTED LOOPS  (cr=6133 pr=6091 pw=0 time=3905733 us cost=1305 size=585 card=15)
             1          1          1               NESTED LOOPS  (cr=5 pr=2 pw=0 time=17096 us cost=2 size=23 card=1)
             1          1          1                TABLE ACCESS BY INDEX ROWID ACCDEF (cr=2 pr=2 pw=0 time=17079 us cost=1 size=12 card=1)
             1          1          1                 INDEX UNIQUE SCAN ACCDEF_IX1 (cr=1 pr=1 pw=0 time=6675 us cost=0 size=0 card=1)(object id 103661)
             1          1          1                TABLE ACCESS BY INDEX ROWID PARTNERS (cr=3 pr=0 pw=0 time=14 us cost=1 size=11 card=1)
             1          1          1                 INDEX UNIQUE SCAN PARTNERS_IX1 (cr=2 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 91563)
           177        177        177               TABLE ACCESS FULL EQUITYKEYS (cr=6128 pr=6089 pw=0 time=3888376 us cost=1303 size=240 card=15)
           177        177        177              TABLE ACCESS BY INDEX ROWID SECURITIES (cr=357 pr=0 pw=0 time=1127 us cost=1 size=44 card=1)
           177        177        177               INDEX UNIQUE SCAN P_SECURITIES (cr=180 pr=0 pw=0 time=563 us cost=0 size=0 card=1)(object id 93819)
           177        177        177             TABLE ACCESS BY INDEX ROWID SECURITIES (cr=356 pr=0 pw=0 time=2027 us cost=2 size=17 card=1)
           177        177        177              INDEX RANGE SCAN SECURITIES_IX2 (cr=180 pr=0 pw=0 time=1166 us cost=1 size=0 card=1)(object id 93809)
         18060      18060      18060            TABLE ACCESS BY INDEX ROWID HOLKEYS (cr=9191 pr=100 pw=0 time=716100 us cost=13 size=340 card=20)
         18060      18060      18060             INDEX RANGE SCAN I_HOLKEYS_SECPOR (cr=421 pr=100 pw=0 time=689634 us cost=2 size=0 card=23)(object id 98864)
          8667       8667       8667           TABLE ACCESS BY INDEX ROWID CUSTODIES (cr=4 pr=1 pw=0 time=131716 us cost=1 size=12 card=1)
         36120      36120      36120            INDEX RANGE SCAN R_CUSTODIES_CSTD (cr=3 pr=1 pw=0 time=53659 us cost=0 size=0 card=3)(object id 101437)
          8667       8667       8667          TABLE ACCESS BY INDEX ROWID PORTFOLIOS (cr=10479 pr=0 pw=0 time=36782 us cost=1 size=18 card=1)
          8667       8667       8667           INDEX UNIQUE SCAN P_PORTFOLIOS (cr=1812 pr=0 pw=0 time=14722 us cost=0 size=0 card=1)(object id 91399)
          8667       8667       8667         INDEX UNIQUE SCAN P_PORTGROUPS (cr=7647 pr=0 pw=0 time=20935 us cost=0 size=0 card=1)(object id 95885)
          8667       8667       8667        TABLE ACCESS BY INDEX ROWID PORTGROUPS (cr=8667 pr=0 pw=0 time=15075 us cost=1 size=7 card=1)
             3          3          3       VIEW  index$_join$_005 (cr=6 pr=4 pw=0 time=17822 us cost=3 size=45 card=5)
             3          3          3        HASH JOIN  (cr=6 pr=4 pw=0 time=17816 us)
             5          5          5         INDEX FAST FULL SCAN PORTGROUPTYPES_IX1 (cr=3 pr=2 pw=0 time=10731 us cost=1 size=45 card=5)(object id 95857)
             3          3          3         INDEX FAST FULL SCAN P_PORTGROUPTYPES (cr=3 pr=2 pw=0 time=6182 us cost=1 size=45 card=5)(object id 95858)
          3945       3945       3945      VIEW PUSHED PREDICATE  (cr=250808108 pr=1639 pw=0 time=1615801762 us cost=32 size=36 card=1)
          3945       3945       3945       SORT GROUP BY (cr=250808108 pr=1639 pw=0 time=1615792437 us cost=32 size=86 card=1)
          8052       8052       8052        NESTED LOOPS  (cr=250808108 pr=1639 pw=0 time=3245096176 us cost=31 size=86 card=1)
       6879822    6879822    6879822         NESTED LOOPS  (cr=14142041 pr=0 pw=0 time=93287445 us cost=18 size=53 card=1)
          7665       7665       7665          MERGE JOIN CARTESIAN (cr=3980 pr=0 pw=0 time=214689 us cost=5 size=40 card=1)
          7665       7665       7665           NESTED LOOPS  (cr=3846 pr=0 pw=0 time=75334 us cost=3 size=23 card=1)
          3833       3833       3833            TABLE ACCESS BY INDEX ROWID PARTNERS (cr=3842 pr=0 pw=0 time=38447 us cost=2 size=11 card=1)
          3833       3833       3833             INDEX UNIQUE SCAN P_PARTNERS (cr=9 pr=0 pw=0 time=13355 us cost=1 size=0 card=1)(object id 91507)
          7665       7665       7665            TABLE ACCESS BY INDEX ROWID CUSTODIES (cr=4 pr=0 pw=0 time=34661 us cost=1 size=12 card=1)
          7665       7665       7665             INDEX RANGE SCAN R_CUSTODIES_CSTD (cr=3 pr=0 pw=0 time=23093 us cost=0 size=0 card=1)(object id 101437)
          7665       7665       7665           BUFFER SORT (cr=134 pr=0 pw=0 time=128191 us cost=4 size=17 card=1)
          7665       7665       7665            TABLE ACCESS BY INDEX ROWID SECURITIES (cr=134 pr=0 pw=0 time=44771 us cost=2 size=17 card=1)
          7665       7665       7665             INDEX RANGE SCAN SECURITIES_IX2 (cr=109 pr=0 pw=0 time=32098 us cost=1 size=0 card=1)(object id 93809)
       6879822    6879822    6879822          TABLE ACCESS BY INDEX ROWID HOLKEYS (cr=14138061 pr=0 pw=0 time=99798296 us cost=13 size=13 card=1)
      27845684   27845684   27845684           INDEX RANGE SCAN I_HOLKEYS_SECPOR (cr=92999 pr=0 pw=0 time=21161648 us cost=2 size=0 card=23)(object id 98864)
          8052       8052       8052         VIEW PUSHED PREDICATE  VW_GBC_22 (cr=236667503 pr=1677 pw=0 time=1559090990 us cost=13 size=33 card=1)
          8052       8052       8052          SORT GROUP BY (cr=236667503 pr=1677 pw=0 time=1552356479 us cost=13 size=64 card=1)
          8052       8052       8052           HASH JOIN  (cr=236667503 pr=1677 pw=0 time=1518269306 us cost=12 size=64 card=1)
       6879822    6879822    6879822            TABLE ACCESS BY INDEX ROWID ACCDEF (cr=13759644 pr=0 pw=0 time=58085525 us cost=1 size=12 card=1)
       6879822    6879822    6879822             INDEX UNIQUE SCAN ACCDEF_IX1 (cr=6879822 pr=0 pw=0 time=37383556 us cost=0 size=0 card=1)(object id 103661)
         16077      16077      16077            TABLE ACCESS BY INDEX ROWID HOLDINGS (cr=222907859 pr=1677 pw=0 time=1109306657 us cost=10 size=52 card=1)
      13212301   13212301   13212301             INDEX SKIP SCAN P_HOLDINGS (cr=211196455 pr=431 pw=0 time=734718877 us cost=6 size=0 card=3)(object id 2173392)
         38622      38622      38622     INDEX RANGE SCAN R_HOLDINGS_HOLKEYIK (cr=7997 pr=829 pw=0 time=9653175 us cost=2 size=0 card=42)(object id 2173885)
           123        123        123    TABLE ACCESS BY INDEX ROWID HOLDINGS (cr=31216 pr=2422 pw=0 time=40223697 us cost=38 size=52 card=1)
    Case2
    SELECT EK.SECIK AS EK_SECIK,S.SECIK AS S_SECIK,EK.EQKEY1 AS EK_EQKEY1,EK.FROMDATE AS EK_FROMDATE,S.SECSHORT AS S_SECSHORT,S.SECNAME AS S_SECNAME,C.CDY AS C_CDY,C.CSTD AS C_CSTD,P.PAR AS P_PAR,P.PARIK AS P_PARIK,PH.ACCOUNTING_FRAMEWORK AS PH_ACC_FW,NVL(PH.BAL_NOMINAL_NUMBER,0) AS PH_BAL_NOM_NUM,PH.FROM_DATE AS PH_FROM_DATE,PH.POR AS PH_POR,PH.SEC_SHORT_NAME AS PH_SEC_SHORT_NAME,PH.TO_DATE AS PH_TO_DATE,PH.CUSTODY_SHORT_NAME AS PH_CUST_SHORT_NAME,T.TC_CSTD AS T_CSTD,SUM(T.TH_BAL_NOM_NUM) AS T_BAL_NOM_NUM,T.TH_SEC_SHORT_NAME AS T_SEC_SHORT_NAME,PH.POR_REF AS PH_POR_REF,PORT.PORIK AS PORT_PORIK,PORT.PORGRPIK AS PORT_PORGRPIK,PG.PORGRPIK AS PG_PORGRPIK,PG.PORGRPTYPEIK AS PG_PORGRPTYPEIK,PGT.PORGRPTYPEIK AS PGT_PORGRPTYPEIK FROM SCDAT.CUSTODIES C,SCDAT.EQUITYKEYS EK,SCDAT.PARTNERS P,SCDAT.PORTGROUPS PG,SCDAT.PORTGROUPTYPES PGT,(
    SELECT  HOLKEYS.PORIK As POR_REF,
    ACCDEF.ACC As ACCOUNTING_FRAMEWORK,
    NVL(HOLDINGS.BALNOMVAL,0) As BAL_NOMINAL_NUMBER,
    CUSTODIES.CDY As CUSTODY_SHORT_NAME,
    DECODE(HOLDINGS.FINBOOKED,0,'No',1,'Yes',' ') As FINALLY_BOOKED,
    HOLDINGS.FROMDATE As FROM_DATE,
    PORTFOLIOS.POR As POR,
    SECURITIES.SECSHORT As SEC_SHORT_NAME,
    HOLDINGS.TODATE As TO_DATE,
    HOLDINGS.FINBOOKED As X_FINALLY_BOOKED
    FROM HOLDINGS,HOLKEYS,ACCDEF,CUSTODIES,PORTFOLIOS,SECURITIES WHERE HOLDINGS.HOLKEYIK = HOLKEYS.HOLKEYIK AND HOLDINGS.ACCIK = ACCDEF.ACCIK AND HOLKEYS.CDYIK = CUSTODIES.CDYIK AND HOLKEYS.PORIK = PORTFOLIOS.PORIK AND HOLKEYS.SECIK = SECURITIES.SECIK) PH,SCDAT.PORTFOLIOS PORT,SCDAT.SECURITIES S,(SELECT TC.CDY AS TC_CDY,TC.CSTD AS TC_CSTD,SUM(NVL(TH.BAL_NOMINAL_NUMBER,0)) AS TH_BAL_NOM_NUM,TH.FROM_DATE AS TH_FROM_DATE,TH.TO_DATE AS TH_TO_DATE,TH.SEC_SHORT_NAME AS TH_SEC_SHORT_NAME,TH.CUSTODY_SHORT_NAME AS TH_CUST_SHORT_NAME,TP.PAR AS TP_PAR,TP.PARIK AS TP_PARIK FROM SCDAT.CUSTODIES TC,(
    SELECT  ACCDEF.ACC As ACCOUNTING_FRAMEWORK,
    NVL(HOLDINGS.BALNOMVAL,0) As BAL_NOMINAL_NUMBER,
    CUSTODIES.CDY As CUSTODY_SHORT_NAME,
    DECODE(HOLDINGS.FINBOOKED,0,'No',1,'Yes',' ') As FINALLY_BOOKED,
    HOLDINGS.FROMDATE As FROM_DATE,
    SECURITIES.SECSHORT As SEC_SHORT_NAME,
    HOLDINGS.TODATE As TO_DATE,
    HOLDINGS.FINBOOKED As X_FINALLY_BOOKED
    FROM HOLDINGS,HOLKEYS,ACCDEF,CUSTODIES,SECURITIES WHERE HOLDINGS.ACCIK = ACCDEF.ACCIK AND HOLDINGS.HOLKEYIK = HOLKEYS.HOLKEYIK AND HOLKEYS.CDYIK = CUSTODIES.CDYIK AND HOLKEYS.SECIK = SECURITIES.SECIK) TH,SCDAT.PARTNERS TP WHERE TH.CUSTODY_SHORT_NAME = TC.CDY AND TC.CSTD = TP.PARIK AND TH.ACCOUNTING_FRAMEWORK = :v1  AND NOT (NVL(TH.BAL_NOMINAL_NUMBER,0) = :v2 )  AND TH.FROM_DATE <= :v3  AND TH.TO_DATE >= :v4  AND TH.FINALLY_BOOKED = :v5  GROUP BY TC.CDY,TC.CSTD,TH.FROM_DATE,TH.TO_DATE,TH.SEC_SHORT_NAME,TH.CUSTODY_SHORT_NAME,TP.PAR,TP.PARIK) T WHERE EK.SECIK = S.SECIK AND PORT.PORGRPIK = PG.PORGRPIK AND PG.PORGRPTYPEIK = PGT.PORGRPTYPEIK AND S.SECSHORT = PH.SEC_SHORT_NAME AND PH.SEC_SHORT_NAME = T.TH_SEC_SHORT_NAME AND PH.POR_REF = PORT.PORIK AND PH.CUSTODY_SHORT_NAME = C.CDY AND EK.FROMDATE = :v6  AND NOT (EK.EQKEY1 = :v7 )  AND P.PAR = :v8  AND NOT (PGT.PORGRPTYPE IN (:v9 ,:v10  ))  AND PH.ACCOUNTING_FRAMEWORK = :v11   AND NOT (NVL(PH.BAL_NOMINAL_NUMBER,0) = :v12  )  AND PH.FINALLY_BOOKED = :v13   AND EK.FROMDATE >= PH.FROM_DATE AND EK.FROMDATE <= PH.TO_DATE AND C.CSTD = P.PARIK AND C.CSTD = T.TC_CSTD GROUP BY EK.SECIK,S.SECIK,EK.EQKEY1,EK.FROMDATE,S.SECSHORT,S.SECNAME,C.CDY,C.CSTD,P.PAR,P.PARIK,PH.ACCOUNTING_FRAMEWORK,NVL(PH.BAL_NOMINAL_NUMBER,0),PH.FROM_DATE,PH.POR,PH.SEC_SHORT_NAME,PH.TO_DATE,PH.CUSTODY_SHORT_NAME,T.TC_CSTD,T.TH_SEC_SHORT_NAME,PH.POR_REF,PORT.PORIK,PORT.PORGRPIK,PG.PORGRPIK,PG.PORGRPTYPEIK,PGT.PORGRPTYPEIK
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      2.34       2.34          0          0          0           0
    Fetch        2     39.31     131.53      17885   17489238          0        2039
    total        4     41.66     133.88      17885   17489238          0        2039
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 171  (SCDAT)
    Number of plan statistics captured: 1
    Rows (1st) Rows (avg) Rows (max)  Row Source Operation
          2039       2039       2039  HASH GROUP BY (cr=17489238 pr=17885 pw=0 time=131529969 us cost=2062 size=251 card=1)
        166827     166827     166827   NESTED LOOPS  (cr=17489238 pr=17885 pw=0 time=157379020 us cost=2061 size=251 card=1)
          2043       2043       2043    NESTED LOOPS  (cr=143626 pr=5419 pw=0 time=19393083 us cost=2003 size=215 card=1)
         11156      11156      11156     HASH JOIN  (cr=53391 pr=2600 pw=0 time=4865614 us cost=1559 size=1956 card=12)
         11156      11156      11156      NESTED LOOPS  (cr=53385 pr=2600 pw=0 time=4585085 us)
         11156      11156      11156       NESTED LOOPS  (cr=42229 pr=2600 pw=0 time=4563404 us cost=1555 size=2156 card=14)
         11156      11156      11156        NESTED LOOPS  (cr=32467 pr=2600 pw=0 time=4543117 us cost=1541 size=2058 card=14)
         11156      11156      11156         NESTED LOOPS  (cr=19234 pr=2600 pw=0 time=4506220 us cost=1527 size=1806 card=14)
         24211      24211      24211          NESTED LOOPS  (cr=19230 pr=2600 pw=0 time=4417211 us cost=1526 size=36504 card=312)
           193        193        193           NESTED LOOPS  (cr=6926 pr=2556 pw=0 time=4371848 us cost=1350 size=1500 card=15)
           193        193        193            NESTED LOOPS  (cr=6537 pr=2556 pw=0 time=4370289 us cost=1320 size=1245 card=15)
           193        193        193             NESTED LOOPS  (cr=6148 pr=2556 pw=0 time=4369122 us cost=1305 size=585 card=15)
             1          1          1              NESTED LOOPS  (cr=5 pr=1 pw=0 time=6568 us cost=2 size=23 card=1)
             1          1          1               TABLE ACCESS BY INDEX ROWID ACCDEF (cr=2 pr=1 pw=0 time=6556 us cost=1 size=12 card=1)
             1          1          1                INDEX UNIQUE SCAN ACCDEF_IX1 (cr=1 pr=1 pw=0 time=6551 us cost=0 size=0 card=1)(object id 103661)
             1          1          1               TABLE ACCESS BY INDEX ROWID PARTNERS (cr=3 pr=0 pw=0 time=10 us cost=1 size=11 card=1)
             1          1          1                INDEX UNIQUE SCAN PARTNERS_IX1 (cr=2 pr=0 pw=0 time=6 us cost=0 size=0 card=1)(object id 91563)
           193        193        193              TABLE ACCESS FULL EQUITYKEYS (cr=6143 pr=2555 pw=0 time=4362460 us cost=1303 size=240 card=15)
           193        193        193             TABLE ACCESS BY INDEX ROWID SECURITIES (cr=389 pr=0 pw=0 time=1000 us cost=1 size=44 card=1)
           193        193        193              INDEX UNIQUE SCAN P_SECURITIES (cr=196 pr=0 pw=0 time=498 us cost=0 size=0 card=1)(object id 93819)
           193        193        193            TABLE ACCESS BY INDEX ROWID SECURITIES (cr=389 pr=0 pw=0 time=1486 us cost=2 size=17 card=1)
           193        193        193             INDEX RANGE SCAN SECURITIES_IX2 (cr=197 pr=0 pw=0 time=899 us cost=1 size=0 card=1)(object id 93809)
         24211      24211      24211           TABLE ACCESS BY INDEX ROWID HOLKEYS (cr=12304 pr=44 pw=0 time=38145 us cost=13 size=340 card=20)
         24211      24211      24211            INDEX RANGE SCAN I_HOLKEYS_SECPOR (cr=475 pr=44 pw=0 time=13253 us cost=2 size=0 card=23)(object id 98864)
         11156      11156      11156          TABLE ACCESS BY INDEX ROWID CUSTODIES (cr=4 pr=0 pw=0 time=93056 us cost=1 size=12 card=1)
         48422      48422      48422           INDEX RANGE SCAN R_CUSTODIES_CSTD (cr=3 pr=0 pw=0 time=35831 us cost=0 size=0 card=3)(object id 101437)
         11156      11156      11156         TABLE ACCESS BY INDEX ROWID PORTFOLIOS (cr=13233 pr=0 pw=0 time=31391 us cost=1 size=18 card=1)
         11156      11156      11156          INDEX UNIQUE SCAN P_PORTFOLIOS (cr=2077 pr=0 pw=0 time=12494 us cost=0 size=0 card=1)(object id 91399)
         11156      11156      11156        INDEX UNIQUE SCAN P_PORTGROUPS (cr=9762 pr=0 pw=0 time=15817 us cost=0 size=0 card=1)(object id 95885)
         11156      11156      11156       TABLE ACCESS BY INDEX ROWID PORTGROUPS (cr=11156 pr=0 pw=0 time=15160 us cost=1 size=7 card=1)
             5          5          5      VIEW  index$_join$_005 (cr=6 pr=0 pw=0 time=656 us cost=3 size=45 card=5)
             5          5          5       HASH JOIN  (cr=6 pr=0 pw=0 time=648 us)
             5          5          5        INDEX FAST FULL SCAN PORTGROUPTYPES_IX1 (cr=3 pr=0 pw=0 time=26 us cost=1 size=45 card=5)(object id 95857)
             7          7          7        INDEX FAST FULL SCAN P_PORTGROUPTYPES (cr=3 pr=0 pw=0 time=15 us cost=1 size=45 card=5)(object id 95858)
          2043       2043       2043     TABLE ACCESS BY INDEX ROWID HOLDINGS (cr=90235 pr=2819 pw=0 time=19041512 us cost=38 size=52 card=1)
         92362      92362      92362      INDEX RANGE SCAN R_HOLDINGS_HOLKEYIK (cr=22368 pr=436 pw=0 time=2663719 us cost=2 size=0 card=42)(object id 2173885)
        166827     166827     166827    VIEW PUSHED PREDICATE  (cr=17345612 pr=12466 pw=0 time=107441684 us cost=58 size=36 card=1)
        166827     166827     166827     SORT GROUP BY (cr=17345612 pr=12466 pw=0 time=107408172 us cost=58 size=117 card=1)
       1911217    1911217    1911217      NESTED LOOPS  (cr=17345612 pr=12466 pw=0 time=1296620056 us)
      10575944   10575944   10575944       NESTED LOOPS  (cr=9800492 pr=1140 pw=0 time=22104782 us cost=57 size=117 card=1)
       2292837    2292837    2292837        NESTED LOOPS  (cr=5195338 pr=0 pw=0 time=9516177 us cost=19 size=65 card=1)
          4086       4086       4086         MERGE JOIN CARTESIAN (cr=4885 pr=0 pw=0 time=93451 us cost=6 size=52 card=1)
          4086       4086       4086          NESTED LOOPS  (cr=4103 pr=0 pw=0 time=29074 us cost=4 size=35 card=1)
          2043       2043       2043           NESTED LOOPS  (cr=4099 pr=0 pw=0 time=20146 us cost=3 size=23 card=1)
          2043       2043       2043            TABLE ACCESS BY INDEX ROWID PARTNERS (cr=2052 pr=0 pw=0 time=10371 us cost=2 size=11 card=1)
          2043       2043       2043             INDEX UNIQUE SCAN P_PARTNERS (cr=9 pr=0 pw=0 time=4583 us cost=1 size=0 card=1)(object id 91507)
          2043       2043       2043            TABLE ACCESS BY INDEX ROWID ACCDEF (cr=2047 pr=0 pw=0 time=7133 us cost=1 size=12 card=1)
          2043       2043       2043             INDEX UNIQUE SCAN ACCDEF_IX1 (cr=4 pr=0 pw=0 time=3680 us cost=0 size=0 card=1)(object id 103661)
          4086       4086       4086           TABLE ACCESS BY INDEX ROWID CUSTODIES (cr=4 pr=0 pw=0 time=10204 us cost=1 size=12 card=1)
          4086       4086       4086            INDEX RANGE SCAN R_CUSTODIES_CSTD (cr=3 pr=0 pw=0 time=6320 us cost=0 size=0 card=1)(object id 101437)
          4086       4086       4086          BUFFER SORT (cr=782 pr=0 pw=0 time=60735 us cost=5 size=17 card=1)
          4086       4086       4086           TABLE ACCESS BY INDEX ROWID SECURITIES (cr=782 pr=0 pw=0 time=27892 us cost=2 size=17 card=1)
          4086       4086       4086            INDEX RANGE SCAN SECURITIES_IX2 (cr=590 pr=0 pw=0 time=13746 us cost=1 size=0 card=1)(object id 93809)
       2292837    2292837    2292837         TABLE ACCESS BY INDEX ROWID HOLKEYS (cr=5190453 pr=0 pw=0 time=12329304 us cost=13 size=13 card=1)
      10116948   10116948   10116948          INDEX RANGE SCAN I_HOLKEYS_SECPOR (cr=41387 pr=0 pw=0 time=2136775 us cost=2 size=0 card=23)(object id 98864)
      10575944   10575944   10575944        INDEX RANGE SCAN R_HOLDINGS_HOLKEYIK (cr=4605154 pr=1140 pw=0 time=14152971 us cost=2 size=0 card=42)(object id 2173885)
       1911217    1911217    1911217       TABLE ACCESS BY INDEX ROWID HOLDINGS (cr=7545120 pr=11326 pw=0 time=78999228 us cost=38 size=52 card=1)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
       2039   HASH (GROUP BY)
    166827    NESTED LOOPS
       2043     NESTED LOOPS
      11156      HASH JOIN
      11156       VIEW OF 'index$_join$_005' (VIEW)
      11156        HASH JOIN
      11156         INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                        'PORTGROUPTYPES_IX1' (INDEX (UNIQUE))
      11156         INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                        'P_PORTGROUPTYPES' (INDEX (UNIQUE))
      24211       HASH JOIN
        193        VIEW OF 'index$_join$_004' (VIEW)
        193         HASH JOIN
        193          INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                         'P_PORTGROUPS' (INDEX (UNIQUE))
          1          INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                         'R_PORTGROUPS_PORGRPTYPEIK' (INDEX)
          1        HASH JOIN
          1         HASH JOIN
          1          TABLE ACCESS   MODE: ANALYZED (FULL) OF
                         'EQUITYKEYS' (TABLE)
          1          HASH JOIN
        193           TABLE ACCESS   MODE: ANALYZED (FULL) OF
                          'SECURITIES' (TABLE)
        193           HASH JOIN
        193            VIEW OF 'index$_join$_012' (VIEW)
        193             HASH JOIN
        193              INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                             'P_SECURITIES' (INDEX (UNIQUE))
      24211              INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                             'SECURITIES_IX2' (INDEX (UNIQUE))
      24211            NESTED LOOPS
      11156             NESTED LOOPS
      48422              NESTED LOOPS
      11156               NESTED LOOPS
      11156                TABLE ACCESS   MODE: ANALYZED (BY
                               INDEX ROWID) OF 'ACCDEF' (TABLE)
      11156                 INDEX   MODE: ANALYZED (UNIQUE SCAN)
                                OF 'ACCDEF_IX1' (INDEX (UNIQUE))
      11156                TABLE ACCESS   MODE: ANALYZED (BY
                               INDEX ROWID) OF 'PARTNERS' (TABLE)
          5                 INDEX   MODE: ANALYZED (UNIQUE SCAN)
                                OF 'PARTNERS_IX1' (INDEX (UNIQUE))
          5               TABLE ACCESS   MODE: ANALYZED (BY INDEX
                              ROWID) OF 'CUSTODIES' (TABLE)
          5                INDEX   MODE: ANALYZED (RANGE SCAN) OF
                               'R_CUSTODIES_CSTD' (INDEX)
          7              INDEX   MODE: ANALYZED (RANGE SCAN) OF
                             'R_HOLKEYS_CDYIK' (INDEX)
       2043             TABLE ACCESS   MODE: ANALYZED (BY INDEX
                            ROWID) OF 'HOLKEYS' (TABLE)
      92362         VIEW OF 'index$_join$_013' (VIEW)
    166827          HASH JOIN
    166827           INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                          'P_PORTFOLIOS' (INDEX (UNIQUE))
    1911217           INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                          'PORTFOLIOS_IX1' (INDEX (UNIQUE))
    10575944      TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                     'HOLDINGS' (TABLE)
    2292837       INDEX   MODE: ANALYZED (RANGE SCAN) OF
                      'R_HOLDINGS_HOLKEYIK' (INDEX)
       4086     VIEW PUSHED PREDICATE
       4086      SORT (GROUP BY)
       2043       NESTED LOOPS
       2043        NESTED LOOPS
       2043         MERGE JOIN (CARTESIAN)
       2043          NESTED LOOPS
       2043           TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID)
                          OF 'PARTNERS' (TABLE)
       4086            INDEX   MODE: ANALYZED (UNIQUE SCAN) OF
                           'P_PARTNERS' (INDEX (UNIQUE))
       4086           TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID)
                          OF 'CUSTODIES' (TABLE)
       4086            INDEX   MODE: ANALYZED (RANGE SCAN) OF
                           'R_CUSTODIES_CSTD' (INDEX)
       4086          BUFFER (SORT)
       4086           TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID)
                          OF 'SECURITIES' (TABLE)
    2292837            INDEX   MODE: ANALYZED (RANGE SCAN) OF
                           'SECURITIES_IX2' (INDEX (UNIQUE))
    10116948         TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                        'HOLKEYS' (TABLE)
    10575944          INDEX   MODE: ANALYZED (RANGE SCAN) OF
                         'I_HOLKEYS_SECPOR' (INDEX)
    1911217        VIEW PUSHED PREDICATE OF 'VW_GBC_22' (VIEW)
          0         SORT (GROUP BY)
          0          NESTED LOOPS
          0           TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID)
                          OF 'ACCDEF' (TABLE)
          0            INDEX   MODE: ANALYZED (UNIQUE SCAN) OF
                           'ACCDEF_IX1' (INDEX (UNIQUE))
          0           TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID)
                          OF 'HOLDINGS' (TABLE)
          0            INDEX   MODE: ANALYZED (RANGE SCAN) OF
                           'R_HOLDINGS_HOLKEYIK' (INDEX)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       2        0.00          0.00
      db file sequential read                     16176        0.17         90.98
      db file scattered read                        590        0.01          1.94
      Disk file operations I/O                       15        0.00          0.00
      SQL*Net message from client                     2        0.04          0.04
      SQL*Net more data to client                    33        0.00          0.00

    the plans show that your first query has to do much more work than the second query (250M vs. 17M consistent gets). The queries use different plans and the second plan seems to be the better choice - since the first query does not return any rows. The plans also tell us where the time is spent - and there are some nested loops with extreme execution counts and a lot of expansive index access operations (especially the skip scan on P_HOLDINGS), but I would prefer to use a a plan with rowsource statistics to find the errors in the optimizers cardinality estimations.

  • 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     

  • Refresh a materialized view in parallel

    Hi,
    To improve the refresh performance for a materialized view, I set up it to be refreshed in parallel. The view can be refreshed successfully, however, I did not see the view is refreshed in parallel from session browser, can someone let me know if I miss any steps?
    1) In DB A (running 8 CPUs), set up the base table to be parallelized, the base table is called table1
    ALTER TABLE A.table1 PARALLEL ( DEGREE Default INSTANCES Default );
    2) In Database A, set up the materialized view log
    CREATE MATERIALIZED VIEW LOG
    ON table1 WITH primary key
    INCLUDING NEW VALUES;
    3) In Database B (in the same server with Database A), there is an existing table called table1, prebuilt with millions of records in the table. Due to the size of table1, I have to use prebuilt option
    Drop MATERIALIZED VIEW table1;
    CREATE MATERIALIZED VIEW table1 ON PREBUILT TABLE
    REFRESH FAST with primary key
    AS
    select /*+ PARALLEL(table1, 8) */ *
    from table1@A;
    4) in Database B, I executed this stored procedure -
    EXECUTE DBMS_MVIEW.REFRESH(LIST=>'table1',PARALLELISM=>8, METHOD=>'F');
    Thanks in advance!
    Liz

    I checked the execution plan when I executed the refresh stored procedure again, Does the plan indicates the parallel execution is working or not?
    SELECT STATEMENT REMOTE ALL_ROWSCost: 32,174 Bytes: 775,392 Cardinality: 1,182                                                   
    13 PX COORDINATOR                                              
    12 PX SEND QC (RANDOM) PARALLEL_TO_SERIAL SYS.:TQ10001 :Q1001                                        
         11 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1001                                   
         9 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1001Cost: 32,174 Bytes: 775,392 Cardinality: 1,182                               
              6 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1001                         
                   5 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1001                    
                        4 PX SEND ROUND-ROBIN PARALLEL_FROM_SERIAL SYS.:TQ10000 A               
                             3 VIEW APP_USR. Cost: 12,986 Bytes: 6,070,196 Cardinality: 275,918           
                                  2 HASH UNIQUE Cost: 12,986 Bytes: 9,105,294 Cardinality: 275,918      
                                       1 TABLE ACCESS FULL TABLE A.MLOG$_TABLE1 A Cost: 10,518 Bytes: 9,105,294 Cardinality: 275,918
         8 PARTITION RANGE ITERATOR PARALLEL_COMBINED_WITH_PARENT :Q1001Cost: 0 Cardinality: 1                          
         7 INDEX RANGE SCAN INDEX (UNIQUE) PARALLEL_COMBINED_WITH_PARENT A.PK_TABLE1 :Q1001Cost: 0 Cardinality: 1                     
    10 TABLE ACCESS BY LOCAL INDEX ROWID TABLE PARALLEL_COMBINED_WITH_PARENT A.TABLE1 :Q1001Cost: 0 Bytes: 634 Cardinality: 1

  • Performance Differences (complex)

    Hi!
    Almost 2 years ago we started to migrate our software from Oracle 8.0 to Oracle 10g.
    Soon we faced severe performance problems with some statements (Oracle 10g being 1000 times SLOWER than 8.0!), but we somehow managed to get around with this.
    Then we suddenly faced problems with a few statements, that were fast on 10.1.0.2 and slow on 10.1.0.4 - or vice versa. But we also managed this...
    Now in recent days - guess what - I'm even having problems with extremly varying performance executing SQLs on two machines running the same database (10.1.0.2), having been installed identically. The hardware ist not equal, maybe server1 ist two times faster than server2, but the diffrences in execution time are far beyond that, what hardware differences could explain (sometimes factor 100), and to make the confusion complete: sometimes the slow machine is by far faster than the "fast" one :(
    I know there are millions of factors that determine the execution speed of an sql statement, but slowly but surely this behaviour really starts to suck apart from the fact that developement becomes expensive, if you never know whether the statement you wrote will also be fast on your customer's computer.
    Meanwhile I'm really desperate about this behaviour and my belief in oracle (or in my abilities) has decreased drastically.
    Has anyone some hints how to generally adress problems like these?
    First thing I do in these situations is to generate new statistics using GATHER_SCHEMA_STATS but in most cases this wont help.
    We also tried looking at the execution plans. Of course they are different, but the question is why, and how can I affect this?
    The last weeks this has really become a big problem for us, because the number of incidents has increased and we don't want our application to be a kind of performance-gamble.
    If I look around in forums I always have the feeling we are the only ones to face problems like these. Are we doing something completely wrong, and how can I find out what?
    Has anyone faced similar problems?
    Thanks in advance,
    Marcus

    -- Statement I
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 401 | 48 (3)| 00:00:01 |
    |* 1 | TABLE ACCESS BY INDEX ROWID | CMP_STRUKTUREN | 1 | 140 | 2 (0)| 00:00:01 |
    | 2 | NESTED LOOPS | | 1 | 401 | 48 (3)| 00:00:01 |
    |* 3 | HASH JOIN | | 1 | 261 | 46 (3)| 00:00:01 |
    | 4 | TABLE ACCESS BY INDEX ROWID| CMP_STRUKTUREN | 1 | 140 | 4 (0)| 00:00:01 |
    |* 5 | INDEX RANGE SCAN | STR_PK | 1 | | 3 (0)| 00:00:01 |
    |* 6 | TABLE ACCESS FULL | BDE_MITARBEITERTAETIGKEITEN | 242 | 29282 | 42 (3)| 00:00:01 |
    |* 7 | INDEX RANGE SCAN | STR_STROBJ_ZU_FK_I | 1 | | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - filter("ST_A_FS"."STRUKTURTYP"='FERTIGUNGSTRUKTUR' AND "ST_A_FS"."STRUKTURSUBTYP"='FERTSTR'
    AND "ST_A_FS"."STUFE"=1)
    3 - access("ST_A_VP"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG")
    5 - access("ST_A_VP"."STRUKTURSUBTYP"='VORPRODUKT' AND "ST_A_VP"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_VP"."STRUKTURTYP"='PRODUKTSTRUKTUR' AND "ST_A_VP"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND
    "ST_A_VP"."STUFE"=3 AND "ST_A_VP"."STUFE_ZU"=3)
    6 - filter("MT"."PRODUKTIONSTAG"<=TO_DATE('2004-08-30 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."PRODUKTIONSTAG">=TO_DATE('2004-08-10 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."TAETIGKEITSART"='GESARBEIT')
    7 - access("ST_A_FS"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND
    "ST_A_FS"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND "ST_A_FS"."STUFE_ZU"=3 AND
    "ST_A_FS"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG")
    Statistiken
    0 recursive calls
    0 db block gets
    1314 consistent gets
    0 physical reads
    0 redo size
    71298 bytes sent via SQL*Net to client
    633 bytes received via SQL*Net from client
    14 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    176 rows processed
    -- Statement II
    PLAN_TABLE_OUTPUT
    Plan hash value: 4199534100
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 401 | 48 (3)| 00:00:01 |
    |* 1 | HASH JOIN | | 1 | 401 | 48 (3)| 00:00:01 |
    |* 2 | TABLE ACCESS BY INDEX ROWID | CMP_STRUKTUREN | 1 | 140 | 2 (0)| 00:00:01 |
    | 3 | NESTED LOOPS | | 1 | 280 | 6 (0)| 00:00:01 |
    | 4 | TABLE ACCESS BY INDEX ROWID| CMP_STRUKTUREN | 1 | 140 | 4 (0)| 00:00:01 |
    |* 5 | INDEX RANGE SCAN | STR_PK | 1 | | 3 (0)| 00:00:01 |
    |* 6 | INDEX RANGE SCAN | STR_STROBJ_ZU_FK_I | 1 | | 1 (0)| 00:00:01 |
    |* 7 | TABLE ACCESS FULL | BDE_MITARBEITERTAETIGKEITEN | 242 | 29282 | 42 (3)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - access("ST_A_FS"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG")
    2 - filter("ST_A_FS"."STRUKTURTYP"='FERTIGUNGSTRUKTUR' AND "ST_A_FS"."STRUKTURSUBTYP"='FERTSTR'
    AND "ST_A_FS"."STUFE"=1)
    5 - access("ST_A_VP"."STRUKTURSUBTYP"='VORPRODUKT' AND "ST_A_VP"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_VP"."STRUKTURTYP"='PRODUKTSTRUKTUR' AND "ST_A_VP"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND
    "ST_A_VP"."STUFE"=3 AND "ST_A_VP"."STUFE_ZU"=3)
    6 - access("ST_A_FS"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND
    "ST_A_FS"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND "ST_A_FS"."STUFE_ZU"=3 AND
    "ST_A_VP"."STRUKTUROBJEKT_ZU"="ST_A_FS"."STRUKTUROBJEKT_ZU")
    7 - filter("MT"."PRODUKTIONSTAG"<=TO_DATE('2004-08-30 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."PRODUKTIONSTAG">=TO_DATE('2004-08-10 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."TAETIGKEITSART"='GESARBEIT')
    Statistiken
    0 recursive calls
    0 db block gets
    2731 consistent gets
    0 physical reads
    0 redo size
    71298 bytes sent via SQL*Net to client
    633 bytes received via SQL*Net from client
    14 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    176 rows processed
    -- Statement III
    PLAN_TABLE_OUTPUT
    Plan hash value: 3128453532
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 235 | 30 (4)| 00:00:01 |
    |* 1 | HASH JOIN | | 1 | 235 | 30 (4)| 00:00:01 |
    | 2 | MERGE JOIN CARTESIAN| | 1 | 168 | 5 (0)| 00:00:01 |
    |* 3 | INDEX RANGE SCAN | STR_PK | 1 | 84 | 3 (0)| 00:00:01 |
    | 4 | BUFFER SORT | | 1 | 84 | 2 (0)| 00:00:01 |
    |* 5 | INDEX RANGE SCAN | STR_PK | 1 | 84 | 2 (0)| 00:00:01 |
    |* 6 | INDEX FAST FULL SCAN| MAT_PK | 242 | 16214 | 24 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - access("ST_A_FS"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG" AND
    "ST_A_VP"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG")
    3 - access("ST_A_FS"."STRUKTURSUBTYP"='FERTSTR' AND
    "ST_A_FS"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_FS"."STRUKTURTYP"='FERTIGUNGSTRUKTUR' AND
    "ST_A_FS"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND "ST_A_FS"."STUFE"=1
    AND "ST_A_FS"."STUFE_ZU"=3)
    5 - access("ST_A_VP"."STRUKTURSUBTYP"='VORPRODUKT' AND
    "ST_A_VP"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_VP"."STRUKTURTYP"='PRODUKTSTRUKTUR' AND
    "ST_A_VP"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND "ST_A_VP"."STUFE"=3
    AND "ST_A_VP"."STUFE_ZU"=3)
    6 - filter("MT"."PRODUKTIONSTAG"<=TO_DATE('2004-08-30 00:00:00',
    'yyyy-mm-dd hh24:mi:ss') AND "MT"."PRODUKTIONSTAG">=TO_DATE('2004-08-10
    00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."TAETIGKEITSART"='GESARBEIT')
    Statistiken
    77 recursive calls
    0 db block gets
    150 consistent gets
    5194 physical reads
    0 redo size
    2676 bytes sent via SQL*Net to client
    633 bytes received via SQL*Net from client
    14 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    176 rows processed
    -- Statement IV
    PLAN_TABLE_OUTPUT
    Plan hash value: 3768923004
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 235 | 30 (4)| 00:00:01 |
    |* 1 | HASH JOIN | | 1 | 235 | 30 (4)| 00:00:01 |
    | 2 | NESTED LOOPS | | 1 | 168 | 5 (0)| 00:00:01 |
    |* 3 | INDEX RANGE SCAN | STR_PK | 1 | 84 | 3 (0)| 00:00:01 |
    |* 4 | INDEX RANGE SCAN | STR_PK | 1 | 84 | 2 (0)| 00:00:01 |
    |* 5 | INDEX FAST FULL SCAN| MAT_PK | 242 | 16214 | 24 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - access("ST_A_FS"."STRUKTUROBJEKT_ZU"="MT"."AUFTRAG")
    3 - access("ST_A_FS"."STRUKTURSUBTYP"='FERTSTR' AND
    "ST_A_FS"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_FS"."STRUKTURTYP"='FERTIGUNGSTRUKTUR' AND
    "ST_A_FS"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND "ST_A_FS"."STUFE"=1
    AND "ST_A_FS"."STUFE_ZU"=3)
    4 - access("ST_A_VP"."STRUKTURSUBTYP"='VORPRODUKT' AND
    "ST_A_VP"."STRUKTURSUBTYP_ZU"='AUFTRAG' AND
    "ST_A_VP"."STRUKTURTYP"='PRODUKTSTRUKTUR' AND
    "ST_A_VP"."STRUKTURTYP_ZU"='AUFTRAGSSTRUKTUR' AND "ST_A_VP"."STUFE"=3
    AND "ST_A_VP"."STUFE_ZU"=3 AND "ST_A_VP"."STRUKTUROBJEKT_ZU"="ST_A_FS"."
    STRUKTUROBJEKT_ZU")
    filter("ST_A_VP"."STRUKTUROBJEKT_ZU"="ST_A_FS"."STRUKTUROBJEKT_ZU
    5 - filter("MT"."PRODUKTIONSTAG"<=TO_DATE('2004-08-30 00:00:00',
    'yyyy-mm-dd hh24:mi:ss') AND "MT"."PRODUKTIONSTAG">=TO_DATE('2004-08-10
    00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
    "MT"."TAETIGKEITSART"='GESARBEIT')
    Statistiken
    0 recursive calls
    0 db block gets
    17845 consistent gets
    0 physical reads
    0 redo size
    2676 bytes sent via SQL*Net to client
    633 bytes received via SQL*Net from client
    14 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    176 rows processed

Maybe you are looking for