HEADER-OPERA in PCL4

Hi,
While reading the PCL4 cluster, I came across different combinations of header-opera field. Sometimes two records in header, one with opera "D" and another with "I". Please let me know what all possible combinations can come and in which scenario.
Thanks & Regards,
Soumya.

I've never installed Photoshop Elements. Why do I see Opera in my Develop menu?
Internet Explorer version 7, 8 and 9 also show. These are PC only apps. How could they be installed?
Why an option for the Windows version of Firefox and Opera? They can't be installed, either. How about the iOS versions? They can't be installed on a Mac.
The Develop menu "User Agent" is a method to help "debug" and test page code. Click the "Other" option at the bottom of the menu to learn more.

Similar Messages

  • HEADER-AEDTM is  '00000000' when HEADER-OPERA is 'I'

    I am trying to find records in 168 that have been inserted within the time period specified on the PNPCE selection screen like this:
    if header-endda eq '99991231' and header-aedtm between pn-begda and pn-endda.
    However, when the HEADER-OPER is "I" the value of HEADER-AEDTM is always zeros.  I'm confused.  Please advise.
    Thanks.

    Amit:
               PERNR      BPLAN     BEGDA       ENDDA
               =======    ======    ========    ========
    Before     00000013   B101      04/01/2008  12/31/9999
    After      00000013   B102      04/01/2008  12/31/9999
    Let's say I change this record today (5/8/2008).
    When I run my program I want to pull this record as having been changed (the plan changed).  I can't go by BEGDA/ENDDA unless the user manually delimits the old one and creates a new one.  Assuming they do not do that and they simply change the existing record (as above), I'll have to go to PCL4 and see that there's a "U" record in the HEADER where this row was changed.  I understand that it could have been a mistake but I'm checking to see if they made a change in only the BPLAN or PLTYP and if those didn't change I'm skipping it.  But I'll need to look at AEDTM for these to see if they were changed in the current month.  This is working fine in my program.
    For records that were inserted into 168 within the current month I've no idea what the BEGDA is going to be.  It could be retroactive from the beginning of the month or even prior or it could be some date in the future like the beginning of the next month.  So again I'd check PCL4 to see if there was an inserted record in 168 between within the last month by looking at AEDTM but this date is all zeros on HEADER and thus makes it impossible for me to check it for inclusion in my selection.
    I'm only looking at PCL4 to see if there was a change or an insert - not to get the data.  Really all I need from PCL4 is to see if the given pernr has a changed/inserted 168 record there and if it is I'll grab the details for my report from the actual infotypes themselves.
    Is this making any sense? LOL.  I'm new to ABAP/SAP so I appreciate your patience.

  • Functional location Task lists Header/Operation Mass Upload

    Hello experts,
    I am using LSMW to upload Functional location Task lists Header & Operations in T-code IA12, for this i am using the Standard program IBIP (Object -> 480).
    All required fields are in the standard structures apart from Operation QM Data, Recording view -> ERFSICHT & Inspection point Completion -> QPPKTABS (see attached screen shot).
    Should i upload these 2 fields in different way ?
    Thank you by advance.
    Regards,
    Soufiane

    Generally, for all kinds of task list (Maintenance, Quality as well as Production), I tend to use BDC programs by which all the fields can be addressed. In standard, there are certain fields which might have got avoided for certain reasons.
    So, I suggest you to look for some other options available.

  • In CM01 selection screen, what is the meaning of "Operator"

    Hello,
    (1) In CM01 selection screen, there are 3 fields with column heading "Operator". There is no documentation available for those fields. Can someone help me understand what is the meaning and use of those 3 fields. Thanks.
    (2) We are in the process of writing a wrapper program for CM01 - so that we have more detailed selection options and also download to Excel. Any help/suggestion for this is welcomed. Thanks.
    - Chetan

    Hi Chetan
    the operator field is just to select your input values and it has these following options
    and has no significance on the report
    =     equal to
    <>     not equal to
    >     Greater than
    >=     greater than/equal to
    <     less than
    <=     less than/equal to
    EQ     equal to
    NE     not equal to
    GT     Greater than
    GE     greater than/equal to
    LT     less than
    LE     less than/equal to
    CP     contains pattern
    NP     does not contain pattern
    regarding downloading the report to excel file, it is a standard functionality and any ABAP developer should be able to add it to your report and if you plan to add some additional fields to make your report more details, you need to do some enhance ment and build a custom report depending on what you want to add
    if helpful please reward your points

  • ORA 04030 Out of process memory error

    Dear experts,
    I know there are multiple discussions around this error and I have been reading through most of them in the past one week or so, but looks like we are running out of options or are missing the color altogether. Ok, we are getting ORA-04030 - out of process memory while allocating....while one of our batch process runs in the night. It simply tries to insert/update to a table. Our installation is 11.2.0.1.0 with no RAC configuration and on 64-bit AIX having 6 cores, 12 CPUs and 16 GB memory.
    We have checked the Workarea_Size_Policy is set to be as Auto so Oracle decides how much memory to allocate to PGA automatically on run-time based on the demand. And based on the AWR report it doesnt look like we are anywhere near the country having a PGA-deficit!! I am attaching the AWR report in a word document here for your reference.
    Also attached below are the configurations and the ulimit values.
    IKBTRN1> show parameter workarea;
    NAME                                 TYPE                             VALUE
    workarea_size_policy                 string                           AUTO
    oraipeikbtrn1:/home/oracle-> ulimit -a
    time(seconds)        unlimited
    file(blocks)         unlimited
    data(kbytes)         unlimited
    stack(kbytes)        4194304
    memory(kbytes)       unlimited
    coredump(blocks)     unlimited
    nofiles(descriptors) unlimited
    threads(per process) unlimited
    processes(per user)  unlimited
    Now, nothing seems to have contributed to the out of process memory issue from Oracle standpoint. I would be happy to be proved wrong here, if I am wrong.
    So, whats going wrong here? A possible memory leak which we cannot zero down to, a OS memory limit or something else?
    Seeking expert's advise on this, and also sincerely appreciate your time in looking at this.
    Thanks.
    P.S - I am pasting the whole AWR report since there is no 'upload file' option here that I can see.
    WORKLOAD REPOSITORY report for
    DB Name     DB Id     Instance     Inst num     Startup Time     Release     RAC
    IKBTRN1     54659199     IKBTRN1     1     06-Jun-11 02:06     11.2.0.1.0     NO
    Host Name     Platform     CPUs     Cores     Sockets     Memory (GB)
    oraipeikbtrn1.******.com     AIX-Based Systems (64-bit)     12     6          16.00
         Snap Id     Snap Time     Sessions     Cursors/Session
    Begin Snap:     5952     26-Aug-11 03:00:48     34     2.0
    End Snap:     5953     26-Aug-11 04:00:52     32     1.9
    Elapsed:          60.07 (mins)          
    DB Time:          1.93 (mins)          
    Report Summary
    Cache Sizes
         Begin     End          
    Buffer Cache:     1,056M     704M     Std Block Size:     8K
    Shared Pool Size:     3,456M     3,456M     Log Buffer:     7,184K
    Load Profile
    Load Profile
         Per Second     Per Transaction     Per Exec     Per Call
    DB Time(s):     0.0     2.0     0.02     0.02
    DB CPU(s):     0.0     0.5     0.00     0.00
    Redo size:     556.1     34,554.8          
    Logical reads:     151.4     9,407.6          
    Block changes:     1.9     119.8          
    Physical reads:     14.2     882.6          
    Physical writes:     9.5     590.4          
    User calls:     1.8     112.8          
    Parses:     1.5     93.7          
    Hard parses:     0.1     8.9          
    W/A MB processed:     -0.1     -6.9          
    Logons:     0.0     1.6          
    Executes:     1.9     115.4          
    Rollbacks:     0.0     0.0          
    Transactions:     0.0               
    Instance Efficiency Percentages (Target 100%)
    Buffer Nowait %:     100.00     Redo NoWait %:     100.00
    Buffer Hit %:     96.63     In-memory Sort %:     99.97
    Library Hit %:     95.68     Soft Parse %:     90.49
    Execute to Parse %:     18.74     Latch Hit %:     100.00
    Parse CPU to Parse Elapsd %:     57.23     % Non-Parse CPU:     86.28
    Shared Pool Statistics
         Begin     End
    Memory Usage %:     85.72     85.76
    % SQL with executions>1:     93.91     96.66
    % Memory for SQL w/exec>1:     89.07     87.04
    Top 5 Timed Foreground Events
    Event     Waits     Time(s)     Avg wait (ms)     % DB time     Wait Class
    DB CPU          29          24.66     
    db file scattered read     3,456     17     5     14.92     User I/O
    db file sequential read     4,304     17     4     14.77     User I/O
    direct path read temp     764     17     22     14.31     User I/O
    direct path write temp     259     5     21     4.70     User I/O
    Host CPU (CPUs: 12 Cores: 6 Sockets: )
    Load Average Begin     Load Average End     %User     %System     %WIO     %Idle
    1.39     1.37     0.2     0.2     0.2     99.6
    Instance CPU
    %Total CPU     %Busy CPU     %DB time waiting for CPU (Resource Manager)
    0.1     20.5     0.0
    Memory Statistics
         Begin     End
    Host Mem (MB):     16,384.0     16,384.0
    SGA use (MB):     4,704.0     4,352.0
    PGA use (MB):     196.1     188.4
    % Host Mem used for SGA+PGA:     29.91     27.71
    Main Report
    •     Report Summary
    •     Wait Events Statistics
    •     SQL Statistics
    •     Instance Activity Statistics
    •     IO Stats
    •     Buffer Pool Statistics
    •     Advisory Statistics
    •     Wait Statistics
    •     Undo Statistics
    •     Latch Statistics
    •     Segment Statistics
    •     Dictionary Cache Statistics
    •     Library Cache Statistics
    •     Memory Statistics
    •     Streams Statistics
    •     Resource Limit Statistics
    •     Shared Server Statistics
    •     init.ora Parameters
    Back to Top
    Wait Events Statistics
    •     Time Model Statistics
    •     Operating System Statistics
    •     Operating System Statistics - Detail
    •     Foreground Wait Class
    •     Foreground Wait Events
    •     Background Wait Events
    •     Wait Event Histogram
    •     Wait Event Histogram Detail (64 msec to 2 sec)
    •     Wait Event Histogram Detail (4 sec to 2 min)
    •     Wait Event Histogram Detail (4 min to 1 hr)
    •     Service Statistics
    •     Service Wait Class Stats
    Back to Top
    Time Model Statistics
    •     Total time in database user-calls (DB Time): 115.9s
    •     Statistics including the word "background" measure background process time, and so do not contribute to the DB time statistic
    •     Ordered by % or DB time desc, Statistic name
    Statistic Name     Time (s)     % of DB Time
    sql execute elapsed time     101.69     87.75
    DB CPU     28.58     24.66
    parse time elapsed     10.14     8.75
    hard parse elapsed time     9.92     8.56
    failed parse elapsed time     4.92     4.25
    hard parse (sharing criteria) elapsed time     4.27     3.68
    connection management call elapsed time     0.42     0.36
    PL/SQL compilation elapsed time     0.34     0.30
    PL/SQL execution elapsed time     0.18     0.15
    sequence load elapsed time     0.00     0.00
    repeated bind elapsed time     0.00     0.00
    DB time     115.88     
    background elapsed time     86.01     
    background cpu time     5.06     
    Back to Wait Events Statistics
    Back to Top
    Operating System Statistics
    •     *TIME statistic values are diffed. All others display actual values. End Value is displayed if different
    •     ordered by statistic type (CPU Use, Virtual Memory, Hardware Config), Name
    Statistic     Value     End Value
    NUM_LCPUS     0     
    NUM_VCPUS     0     
    AVG_BUSY_TIME     1,260     
    AVG_IDLE_TIME     360,705     
    AVG_IOWAIT_TIME     534     
    AVG_SYS_TIME     483     
    AVG_USER_TIME     679     
    BUSY_TIME     16,405     
    IDLE_TIME     4,329,811     
    IOWAIT_TIME     7,284     
    SYS_TIME     7,092     
    USER_TIME     9,313     
    LOAD     1     1
    OS_CPU_WAIT_TIME     503,900     
    PHYSICAL_MEMORY_BYTES     17,179,869,184     
    NUM_CPUS     12     
    NUM_CPU_CORES     6     
    GLOBAL_RECEIVE_SIZE_MAX     1,310,720     
    GLOBAL_SEND_SIZE_MAX     1,310,720     
    TCP_RECEIVE_SIZE_DEFAULT     16,384     
    TCP_RECEIVE_SIZE_MAX     9,223,372,036,854,775,807     
    TCP_RECEIVE_SIZE_MIN     4,096     
    TCP_SEND_SIZE_DEFAULT     16,384     
    TCP_SEND_SIZE_MAX     9,223,372,036,854,775,807     
    TCP_SEND_SIZE_MIN     4,096     
    Back to Wait Events Statistics
    Back to Top
    Operating System Statistics - Detail
    Snap Time     Load     %busy     %user     %sys     %idle     %iowait
    26-Aug 03:00:48     1.39                         
    26-Aug 04:00:52     1.37     0.38     0.21     0.16     99.62     0.17
    Back to Wait Events Statistics
    Back to Top
    Foreground Wait Class
    •     s - second, ms - millisecond - 1000th of a second
    •     ordered by wait time desc, waits desc
    •     %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
    •     Captured Time accounts for 78.2% of Total DB time 115.88 (s)
    •     Total FG Wait Time: 62.08 (s) DB CPU time: 28.58 (s)
    Wait Class     Waits     %Time -outs     Total Wait Time (s)     Avg wait (ms)     %DB time
    User I/O     8,949     0     56     6     48.74
    DB CPU               29          24.66
    System I/O     1,916     0     3     1     2.18
    Other     506     88     1     2     0.92
    Configuration     2     50     1     500     0.86
    Commit     37     0     1     18     0.56
    Application     20     0     0     17     0.29
    Network     4,792     0     0     0     0.01
    Concurrency     1     0     0     0     0.00
    Back to Wait Events Statistics
    Back to Top
    Foreground Wait Events
    •     s - second, ms - millisecond - 1000th of a second
    •     Only events with Total Wait Time (s) >= .001 are shown
    •     ordered by wait time desc, waits desc (idle events last)
    •     %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
    Event     Waits     %Time -outs     Total Wait Time (s)     Avg wait (ms)     Waits /txn     % DB time
    db file scattered read     3,456     0     17     5     59.59     14.92
    db file sequential read     4,304     0     17     4     74.21     14.77
    direct path read temp     764     0     17     22     13.17     14.31
    direct path write temp     259     0     5     21     4.47     4.70
    control file sequential read     1,916     0     3     1     33.03     2.18
    ADR block file read     38     0     1     28     0.66     0.92
    log buffer space     2     50     1     500     0.03     0.86
    log file sync     37     0     1     18     0.64     0.56
    enq: RO - fast object reuse     14     0     0     24     0.24     0.29
    local write wait     44     0     0     1     0.76     0.03
    SQL*Net message to client     4,772     0     0     0     82.28     0.01
    Disk file operations I/O     110     0     0     0     1.90     0.00
    ADR block file write     7     0     0     0     0.12     0.00
    SQL*Net message from client     4,773     0     15,396     3226     82.29     
    Streams AQ: waiting for messages in the queue     720     100     3,600     5000     12.41     
    Back to Wait Events Statistics
    Back to Top
    Background Wait Events
    •     ordered by wait time desc, waits desc (idle events last)
    •     Only events with Total Wait Time (s) >= .001 are shown
    •     %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
    Event     Waits     %Time -outs     Total Wait Time (s)     Avg wait (ms)     Waits /txn     % bg time
    control file sequential read     4,950     0     35     7     85.34     40.74
    control file parallel write     1,262     0     31     25     21.76     36.46
    log file parallel write     383     0     4     10     6.60     4.37
    db file parallel write     627     0     2     3     10.81     2.36
    change tracking file synchronous read     56     0     2     34     0.97     2.21
    os thread startup     17     0     1     88     0.29     1.74
    ADR block file read     135     0     1     7     2.33     1.04
    change tracking file synchronous write     56     0     1     15     0.97     0.98
    SGA: allocation forcing component growth     8     100     1     100     0.14     0.93
    db file sequential read     112     0     1     6     1.93     0.75
    process diagnostic dump     94     0     0     1     1.62     0.09
    ADR block file write     92     0     0     1     1.59     0.07
    LGWR wait for redo copy     11     0     0     1     0.19     0.01
    log file sync     2     0     0     3     0.03     0.01
    ADR file lock     92     22     0     0     1.59     0.01
    Parameter File I/O     24     0     0     0     0.41     0.01
    direct path write     6     0     0     1     0.10     0.00
    Disk file operations I/O     54     0     0     0     0.93     0.00
    rdbms ipc message     17,637     97     61,836     3506     304.09     
    Streams AQ: waiting for time management or cleanup tasks     5     60     11,053     2210602     0.09     
    DIAG idle wait     7,203     100     7,203     1000     124.19     
    PX Idle Wait     1,802     100     3,604     2000     31.07     
    pmon timer     1,212     99     3,603     2973     20.90     
    Space Manager: slave idle wait     726     99     3,603     4963     12.52     
    smon timer     12     100     3,600     300004     0.21     
    Streams AQ: qmn slave idle wait     128     0     3,583     27993     2.21     
    Streams AQ: qmn coordinator idle wait     256     50     3,583     13996     4.41     
    SQL*Net message from client     293     0     2     5     5.05     
    Back to Wait Events Statistics
    Back to Top
    Wait Event Histogram
    •     Units for Total Waits column: K is 1000, M is 1000000, G is 1000000000
    •     % of Waits: value of .0 indicates value was <.05%; value of null is truly 0
    •     % of Waits: column heading of <=1s is truly <1024ms, >1s is truly >=1024ms
    •     Ordered by Event (idle events last)
              % of Waits
    Event     Total Waits     <1ms     <2ms     <4ms     <8ms     <16ms     <32ms     <=1s     >1s
    ADR block file read     173     80.3     5.2     2.3     5.8     1.7          4.6     
    ADR block file write     99     96.0     3.0                    1.0          
    ADR file lock     102     100.0                                   
    Disk file operations I/O     165     100.0                                   
    LGWR wait for redo copy     11     90.9               9.1                    
    Parameter File I/O     24     100.0                                   
    SGA: allocation forcing component growth     8                                   100.0     
    SQL*Net break/reset to client     6     100.0                                   
    SQL*Net message to client     4992     100.0                                   
    SQL*Net more data from client     20     100.0                                   
    asynch descriptor resize     541     100.0                                   
    change tracking file synchronous read     56     83.9                         1.8     14.3     
    change tracking file synchronous write     56     80.4     7.1               1.8          10.7     
    control file parallel write     1262     80.3     1.7     .6     .6     .8     1.3     14.7     
    control file sequential read     6866     94.1     .9     .7     .7     .3     .4     2.9     
    db file parallel write     628     94.3     2.1     1.0     .8     .3     .3     1.3     
    db file scattered read     3457     72.6     7.2     5.4     6.9     5.7     .5     1.6     
    db file sequential read     4525     78.7     2.7     1.8     9.6     5.3     .4     1.5     
    direct path read temp     764     40.2     18.6     9.4     6.2     11.0     5.8     8.9     
    direct path sync     1     100.0                                   
    direct path write     6     83.3     16.7                              
    direct path write temp     259     .4          1.2     88.8          .4     9.3     
    enq: RO - fast object reuse     14     42.9     42.9          7.1               7.1     
    latch free     1     100.0                                   
    latch: cache buffers lru chain     2     100.0                                   
    latch: checkpoint queue latch     2     100.0                                   
    latch: messages     2     100.0                                   
    latch: object queue header operation     2     100.0                                   
    latch: redo allocation     1     100.0                                   
    latch: row cache objects     1     100.0                                   
    local write wait     44     100.0                                   
    log buffer space     2     50.0                              50.0     
    log file parallel write     383     92.4     .8          1.0               5.7     
    log file sync     39     82.1     2.6          2.6               12.8     
    os thread startup     17                                   100.0     
    process diagnostic dump     94     34.0     63.8     2.1                         
    reliable message     7     100.0                                   
    utl_file I/O     12     100.0                                   
    DIAG idle wait     7204                                   100.0     
    PX Idle Wait     1802                                        100.0
    SQL*Net message from client     5067     87.1     6.6     1.0     .5     .5     .1     .5     3.7
    Space Manager: slave idle wait     726     .6                                   99.4
    Streams AQ: qmn coordinator idle wait     256     49.2     .8                              50.0
    Streams AQ: qmn slave idle wait     128                                        100.0
    Streams AQ: waiting for messages in the queue     721                                        100.0
    Streams AQ: waiting for time management or cleanup tasks     5     40.0                              20.0     40.0
    class slave wait     17     100.0                                   
    pmon timer     1212     .9                                   99.1
    rdbms ipc message     17.6K     1.8     .4     .2     .2     .1     .1     21.0     76.2
    smon timer     12                                        100.0
    Back to Wait Events Statistics
    Back to Top
    I couldnt add the rest of the report here since it is telling me I have exceeded 30000 characters. If you want to see the full report, please email me at [email protected]

    Unless your database is strictly a DSS-type of database, your AWR report exposes loads of issues with it. And I think none of the time during the AWR window was spent on database. Look at the DB time (with all those multi cores) compared with the elapsed time of the AWR.
    As you are on 11g, why not make use of MEMORY_TARGET (a single parameter to manage both SGA and PGA)? If you are already on it, ignore this as I can't see it anywhere. If not, get rid of SGA_TARGET and PGA_AGGREGATE_TARGET and replace it with a single MEMORY_TARGET parameter. However you may have a minimum threshold set for different SGA pools so that they won't shrink beyond that point.
    Having said that, setting MEMORY_TARGET is not a guarantee to avoid ORA-4030. Just a single bad PL/SQL code could go and exploit the untunable part of your process memory and even go and blow up the physical memory. If you are using FORALL and BULK load, see if you can cut it down into few chunks rather than running as a single process.
    What does your V$PGASTAT say?

  • 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     

  • Performance issue showing read by other session Event

    Hi All,
    we are having a severe performance issue in my database when we are running batch jobs.
    This was a new database(11.2.0.2) and we are testing the performance by running some batch jobs. These batch jobs included some inserts and updates.
    I am seeing read by other session in top 5 timed events and cache buffers chains in Latch Miss Sources section.
    Please help me to solve this out.
    Inst Num Startup Time    Release     RAC
    1 27-Feb-12 09:03 11.2.0.2.0  NO
    Platform                         CPUs Cores Sockets Memory(GB)
    Linux x86 64-bit                    8     8       8      48.00           
    Snap Id      Snap Time      Sessions Curs/Sess
    Begin Snap:      5605 29-Feb-12 03:00:27        63       4.5
      End Snap:      5614 29-Feb-12 12:00:47        63       4.3
       Elapsed:              540.32 (mins)
       DB Time:            1,774.23 (mins)
    Cache Sizes                       Begin        End
    ~~~~~~~~~~~                  ---------- ----------
                   Buffer Cache:     1,952M     1,952M  Std Block Size:        16K
               Shared Pool Size:     1,024M     1,024M      Log Buffer:    18,868K
    Load Profile              Per Second    Per Transaction   Per Exec   Per Call
    ~~~~~~~~~~~~         ---------------    --------------- ---------- ----------
          DB Time(s):                3.3                0.8       0.02       0.05
           DB CPU(s):                1.1                0.3       0.01       0.02
           Redo size:           55,763.8           13,849.3
       Logical reads:           23,906.6            5,937.4
       Block changes:              325.7               80.9
      Physical reads:              665.6              165.3
    Physical writes:               40.4               10.0
          User calls:               60.7               15.1
              Parses:               10.6                2.6
         Hard parses:                1.1                0.3
    W/A MB processed:                0.6                0.2
              Logons:                0.1                0.0
            Executes:              151.2               37.6
           Rollbacks:                0.0                0.0
        Transactions:                4.0
    Instance Efficiency Percentages (Target 100%)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Buffer Nowait %:   99.94       Redo NoWait %:  100.00
                Buffer  Hit   %:   97.90    In-memory Sort %:  100.00
                Library Hit   %:   98.06        Soft Parse %:   90.16
             Execute to Parse %:   92.96         Latch Hit %:  100.00
    Parse CPU to Parse Elapsd %:   76.71     % Non-Parse CPU:   98.57
    Shared Pool Statistics        Begin    End
                 Memory Usage %:   89.38   87.96
        % SQL with executions>1:   97.14   95.15
      % Memory for SQL w/exec>1:   96.05   92.46
    Top 5 Timed Foreground Events
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                               Avg
                                                              wait   % DB
    Event                                 Waits     Time(s)   (ms)   time Wait Class
    db file sequential read          14,092,706      65,613      5   61.6 User I/O
    DB CPU                                           34,819          32.7
    read by other session               308,534       1,260      4    1.2 User I/O
    direct path read                     97,454         987     10     .9 User I/O
    db file scattered read               71,870         910     13     .9 User I/O
    Host CPU (CPUs:    8 Cores:    8 Sockets:    8)
    ~~~~~~~~         Load Average
                   Begin       End     %User   %System      %WIO     %Idle
                    0.43      0.36      13.7       0.6       9.7      85.7
    Instance CPU
    ~~~~~~~~~~~~
                  % of total CPU for Instance:      13.5
                  % of busy  CPU for Instance:      94.2
      %DB time waiting for CPU - Resource Mgr:       0.0
    Memory Statistics
    ~~~~~~~~~~~~~~~~~                       Begin          End
                      Host Mem (MB):     49,152.0     49,152.0
                       SGA use (MB):      3,072.0      3,072.0
                       PGA use (MB):        506.5        629.1
        % Host Mem used for SGA+PGA:         7.28         7.53
    Time Model Statistics             
    -> Total time in database user-calls (DB Time): 106453.8s
    -> Statistics including the word "background" measure background process
       time, and so do not contribute to the DB time statistic
    -> Ordered by % or DB time desc, Statistic name
    Statistic Name                                       Time (s) % of DB Time
    sql execute elapsed time                            105,531.1         99.1
    DB CPU                                               34,818.8         32.7
    parse time elapsed                                      714.7           .7
    hard parse elapsed time                                 684.8           .6
    PL/SQL execution elapsed time                           161.9           .2
    PL/SQL compilation elapsed time                          44.2           .0
    connection management call elapsed time                  16.9           .0
    hard parse (sharing criteria) elapsed time               10.2           .0
    hard parse (bind mismatch) elapsed time                   9.4           .0
    sequence load elapsed time                                2.9           .0
    repeated bind elapsed time                                0.5           .0
    failed parse elapsed time                                 0.0           .0
    DB time                                             106,453.8
    background elapsed time                               1,753.9
    background cpu time                                      61.7
    Operating System Statistics        
    -> *TIME statistic values are diffed.
       All others display actual values.  End Value is displayed if different
    -> ordered by statistic type (CPU Use, Virtual Memory, Hardware Config), Name
    Statistic                                  Value        End Value
    BUSY_TIME                              3,704,415
    IDLE_TIME                             22,203,740
    IOWAIT_TIME                            2,517,864
    NICE_TIME                                      3
    SYS_TIME                                 145,696
    USER_TIME                              3,557,758
    LOAD                                           0                0
    RSRC_MGR_CPU_WAIT_TIME                         0
    VM_IN_BYTES                      358,813,045,760
    VM_OUT_BYTES                      29,514,830,848
    PHYSICAL_MEMORY_BYTES             51,539,607,552
    NUM_CPUS                                       8
    NUM_CPU_CORES                                  8
    NUM_CPU_SOCKETS                                8
    GLOBAL_RECEIVE_SIZE_MAX                4,194,304
    GLOBAL_SEND_SIZE_MAX                   1,048,586
    TCP_RECEIVE_SIZE_DEFAULT                  87,380
    TCP_RECEIVE_SIZE_MAX                   4,194,304
    TCP_RECEIVE_SIZE_MIN                       4,096
    TCP_SEND_SIZE_DEFAULT                     16,384
    TCP_SEND_SIZE_MAX                      4,194,304
    TCP_SEND_SIZE_MIN                          4,096
    Operating System Statistics -
    Snap Time           Load    %busy    %user     %sys    %idle  %iowait
    29-Feb 03:00:27      0.4      N/A      N/A      N/A      N/A      N/A
    29-Feb 04:00:35      1.4     11.9     11.2      0.6     88.1     14.3
    29-Feb 05:00:41      1.7     13.8     13.2      0.6     86.2     15.8
    29-Feb 06:00:48      1.5     14.0     13.5      0.6     86.0     12.3
    29-Feb 07:01:00      1.8     16.3     15.8      0.5     83.7     10.4
    29-Feb 08:00:12      2.6     23.2     22.5      0.6     76.8     12.6
    29-Feb 09:00:26      1.3     16.6     16.0      0.5     83.4      5.7
    29-Feb 10:00:33      1.2     13.8     13.3      0.5     86.2      2.0
    29-Feb 11:00:43      1.3     14.5     14.0      0.5     85.5      3.8
    29-Feb 12:00:47      0.4      4.9      4.2      0.7     95.1     10.6
    Foreground Wait Class              
    -> s  - second, ms - millisecond -    1000th of a second
    -> ordered by wait time desc, waits desc
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
    -> Captured Time accounts for         97.9%  of Total DB time     106,453.79 (s)
    -> Total FG Wait Time:            69,415.64 (s)  DB CPU time:      34,818.79 (s)
                                                                      Avg
                                          %Time       Total Wait     wait
    Wait Class                      Waits -outs         Time (s)     (ms)  %DB time
    User I/O                   14,693,843     0           69,222        5      65.0
    DB CPU                                                34,819               32.7
    Commit                         40,629     0              119        3       0.1
    System I/O                     26,504     0               57        2       0.1
    Network                     1,945,010     0               11        0       0.0
    Other                         125,200    99                4        0       0.0
    Application                     2,673     0                2        1       0.0
    Concurrency                     3,059     0                1        0       0.0
    Configuration                      31    19                0       15       0.0
    Foreground Wait Events            
    -> s  - second, ms - millisecond -    1000th of a second
    -> Only events with Total Wait Time (s) >= .001 are shown
    -> ordered by wait time desc, waits desc (idle events last)
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
                                                                 Avg
                                            %Time Total Wait    wait    Waits   % DB
    Event                             Waits -outs   Time (s)    (ms)     /txn   time
    db file sequential read      14,092,706     0     65,613       5    108.0   61.6
    read by other session           308,534     0      1,260       4      2.4    1.2
    direct path read                 97,454     0        987      10      0.7     .9
    db file scattered read           71,870     0        910      13      0.6     .9
    db file parallel read            35,001     0        372      11      0.3     .3
    log file sync                    40,629     0        119       3      0.3     .1
    control file sequential re       26,504     0         57       2      0.2     .1
    direct path read temp            14,499     0         49       3      0.1     .0
    direct path write temp            9,186     0         28       3      0.1     .0
    SQL*Net message to client     1,923,973     0          5       0     14.7     .0
    SQL*Net message from dblin        1,056     0          5       5      0.0     .0
    Disk file operations I/O          8,848     0          2       0      0.1     .0
    ASM file metadata operatio           36     0          2      54      0.0     .0
    SQL*Net break/reset to cli        2,636     0          1       1      0.0     .0
    ADR block file read                 472     0          1       1      0.0     .0
    os thread startup                     8     0          1      74      0.0     .0
    SQL*Net more data to clien       17,656     0          1       0      0.1     .0
    asynch descriptor resize        123,852   100          0       0      0.9     .0
    local write wait                    110     0          0       4      0.0     .0
    utl_file I/O                     55,635     0          0       0      0.4     .0
    log file switch (private s            8     0          0      52      0.0     .0
    cursor: pin S wait on X               2     0          0     142      0.0     .0
    enq: KO - fast object chec           13     0          0      20      0.0     .0
    PX Deq: Slave Session Stat          248     0          0       1      0.0     .0
    enq: RO - fast object reus           18     0          0      11      0.0     .0
    latch: cache buffers chain        2,511     0          0       0      0.0     .0
    latch: shared pool                  195     0          0       1      0.0     .0
    CSS initialization                   12     0          0       8      0.0     .0
    PX qref latch                        54   100          0       2      0.0     .0
    SQL*Net more data from cli          995     0          0       0      0.0     .0
    SQL*Net more data from dbl          300     0          0       0      0.0     .0
    kksfbc child completion               1   100          0      56      0.0     .0
    library cache: mutex X              244     0          0       0      0.0     .0
    PX Deq: Signal ACK RSG              124     0          0       0      0.0     .0
    undo segment extension                6   100          0       7      0.0     .0
    PX Deq: Signal ACK EXT              124     0          0       0      0.0     .0
    library cache load lock               3     0          0       9      0.0     .0
    ADR block file write                 45     0          0       1      0.0     .0
    CSS operation: action                12     0          0       2      0.0     .0
    reliable message                     28     0          0       1      0.0     .0
    CSS operation: query                 72     0          0       0      0.0     .0
    latch: row cache objects             14     0          0       1      0.0     .0
    enq: SQ - contention                 17     0          0       0      0.0     .0
    latch free                           32     0          0       0      0.0     .0
    buffer busy waits                    52     0          0       0      0.0     .0
    enq: PS - contention                 16     0          0       0      0.0     .0
    enq: TX - row lock content            6     0          0       1      0.0     .0
    SQL*Net message to dblink         1,018     0          0       0      0.0     .0
    cursor: pin S                        23     0          0       0      0.0     .0
    latch: cache buffers lru c            8     0          0       0      0.0     .0
    SQL*Net message from clien    1,923,970     0    944,508     491     14.7
    jobq slave wait                  66,732   100     33,334     500      0.5
    Streams AQ: waiting for me        6,481   100     32,412    5001      0.0
    wait for unread message on       32,858    98     32,411     986      0.3
    PX Deq: Execution Msg             1,448     0        190     131      0.0
    PX Deq: Execute Reply             1,196     0         74      62      0.0
    HS message to agent                 228     0          4      19      0.0
    single-task message                  42     0          4      97      0.0
    PX Deq Credit: send blkd            904     0          2       3      0.0
    PX Deq Credit: need buffer          205     0          1       3      0.0
    Foreground Wait Events            
    -> s  - second, ms - millisecond -    1000th of a second
    -> Only events with Total Wait Time (s) >= .001 are shown
    -> ordered by wait time desc, waits desc (idle events last)
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
                                                                 Avg
                                            %Time Total Wait    wait    Waits   % DB
    Event                             Waits -outs   Time (s)    (ms)     /txn   time
    PX Deq: Table Q Normal            4,291     0          1       0      0.0
    PX Deq: Join ACK                    124     0          0       1      0.0
    PX Deq: Parse Reply                 124     0          0       0      0.0
    KSV master wait                     256     0          0       0      0.0
    Latch Miss Sources                
    -> only latches with sleeps are shown
    -> ordered by name, sleeps desc
                                                         NoWait              Waiter
    Latch Name               Where                       Misses     Sleeps   Sleeps
    ASM map operation freeli kffmTranslate2                   0          2        0
    DML lock allocation      ktadmc                           0          2        0
    FOB s.o list latch       ksfd_allfob                      0          2        2
    In memory undo latch     ktiFlushMe                       0          5        0
    In memory undo latch     ktichg: child                    0          3        0
    PC and Classifier lists  No latch                         0          6        0
    Real-time plan statistic keswxAddNewPlanEntry             0         20       20
    SQL memory manager worka qesmmIRegisterWorkArea:1         0          1        1
    active service list      kswslogon: session logout        0         23       12
    active service list      kswssetsvc: PX session swi       0          6        1
    active service list      kswsite: service iterator        0          1        0
    archive process latch    kcrrgpll                         0          3        3
    cache buffers chains     kcbgtcr_2                        0      1,746      573
    cache buffers chains     kcbgtcr: fast path (cr pin       0      1,024    2,126
    cache buffers chains     kcbgcur_2                        0         60        8
    cache buffers chains     kcbchg1: kslbegin: bufs no       0         16        3
    cache buffers chains     kcbgtcr: fast path               0         14       20
    cache buffers chains     kcbzibmlt: multi-block rea       0         10        0
    cache buffers chains     kcbrls_2                         0          9       53
    cache buffers chains     kcbgtcr: kslbegin shared         0          8        1
    cache buffers chains     kcbrls_1                         0          7       84
    cache buffers chains     kcbgtcr: kslbegin excl           0          6       14
    cache buffers chains     kcbnew: new latch again          0          6        0
    cache buffers chains     kcbzgb: scan from tail. no       0          6        0
    cache buffers chains     kcbzwb                           0          5        8
    cache buffers chains     kcbgcur: fast path (shr)         0          3        0
    cache buffers chains     kcbget: pin buffer               0          3        0
    cache buffers chains     kcbzhngcbk2_1                    0          1        0
    cache buffers lru chain  kcbzgws                          0         19        0
    cache buffers lru chain  kcbo_link_q                      0          3        0
    call allocation          ksuxds                           0         14       10
    call allocation          ksudlp: top call                 0          2        3
    enqueue hash chains      ksqgtl3                          0          2        1
    enqueue hash chains      ksqrcl                           0          1        2
    enqueues                 ksqgel: create enqueue           0          1        0
    object queue header oper kcbo_unlink_q                    0          5        2
    object queue header oper kcbo_sw_buf                      0          2        0
    object queue header oper kcbo_link_q                      0          1        2
    object queue header oper kcbo_switch_cq                   0          1        2
    object queue header oper kcbo_switch_mq_bg                0          1        4
    parallel query alloc buf kxfpbalo                         0          1        1
    process allocation       ksucrp:1                         0          2        0
    process queue reference  kxfpqrsnd                        0          1        0
    qmn task queue latch     kwqmnmvtsks: delay to read       0          1        0
    redo allocation          kcrfw_redo_gen: redo alloc       0         17        0
    row cache objects        kqreqd: reget                    0          6        0
    row cache objects        kqrpre: find obj                 0          6       13
    row cache objects        kqrso                            0          2        0
    row cache objects        kqreqd                           0          1        2
    row cache objects        kqrpre: init complete            0          1        1
    shared pool              kghalo                           0        199      106
    shared pool              kghupr1                          0         39      109
    shared pool              kghfre                           0         18       19
    shared pool              kghalp                           0          7       29
    space background task la ktsj_grab_task                   0         21       27
    Mutex Sleep Summary                
    -> ordered by number of sleeps desc
                                                                             Wait
    Mutex Type            Location                               Sleeps    Time (ms)
    Library Cache         kglhdgn2 106                              338           12
    Library Cache         kgllkc1   57                              259           10
    Library Cache         kgllkdl1  85                              123           21
    Cursor Pin            kkslce [KKSCHLPIN2]                        70          286
    Library Cache         kglget2   2                                31            1
    Library Cache         kglhdgn1  62                               31            2
    Library Cache         kglpin1   4                                26            1
    Library Cache         kglpnal1  90                               18            0
    Library Cache         kglpndl1  95                               15            2
    Library Cache         kgllldl2 112                                6            0
    Library Cache         kglini1   32                                1            0
              -------------------------------------------------------------Thanks in advance.

    Hi,
    Thanks for reply.
    I provided one hour report.
    Inst Num Startup Time    Release     RAC
    1 27-Feb-12 09:03 11.2.0.2.0  NO
      Platform                         CPUs Cores Sockets Memory(GB)
    Linux x86 64-bit                    8     8       8      48.00
                  Snap Id      Snap Time      Sessions Curs/Sess
    Begin Snap:      5606 29-Feb-12 04:00:35        63       3.7
      End Snap:      5607 29-Feb-12 05:00:41        63       3.6
       Elapsed:               60.11 (mins)
       DB Time:              382.67 (mins)
    Cache Sizes                       Begin        End
    ~~~~~~~~~~~                  ---------- ----------
                   Buffer Cache:     1,952M     1,952M  Std Block Size:        16K
               Shared Pool Size:     1,024M     1,024M      Log Buffer:    18,868K
    Load Profile              Per Second    Per Transaction   Per Exec   Per Call
    ~~~~~~~~~~~~         ---------------    --------------- ---------- ----------
          DB Time(s):                6.4                0.8       0.03       0.03
           DB CPU(s):                1.0                0.1       0.00       0.00
           Redo size:           84,539.3           10,425.6
       Logical reads:           23,345.6            2,879.1
       Block changes:              386.5               47.7
      Physical reads:            1,605.0              197.9
    Physical writes:                7.1                0.9
          User calls:              233.9               28.9
              Parses:                4.0                0.5
         Hard parses:                0.1                0.0
    W/A MB processed:                0.1                0.0
              Logons:                0.1                0.0
            Executes:              210.9               26.0
           Rollbacks:                0.0                0.0
        Transactions:                8.1
    Instance Efficiency Percentages (Target 100%)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Buffer Nowait %:   99.62       Redo NoWait %:  100.00
                Buffer  Hit   %:   95.57    In-memory Sort %:  100.00
                Library Hit   %:   99.90        Soft Parse %:   98.68
             Execute to Parse %:   98.10         Latch Hit %:   99.99
    Parse CPU to Parse Elapsd %:   32.08     % Non-Parse CPU:   99.90
    Shared Pool Statistics        Begin    End
                 Memory Usage %:   89.25   89.45
        % SQL with executions>1:   96.79   97.52
      % Memory for SQL w/exec>1:   95.67   96.56
    Top 5 Timed Foreground Events
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                               Avg
                                                              wait   % DB
    Event                                 Waits     Time(s)   (ms)   time Wait Class
    db file sequential read           3,054,464      17,002      6   74.0 User I/O
    DB CPU                                            3,748          16.3
    read by other session               199,603         796      4    3.5 User I/O
    direct path read                     46,301         439      9    1.9 User I/O
    db file scattered read               21,113         269     13    1.2 User I/O
    Host CPU (CPUs:    8 Cores:    8 Sockets:    8)
    ~~~~~~~~         Load Average
                   Begin       End     %User   %System      %WIO     %Idle
                    1.45      1.67      13.2       0.6      15.8      86.2
    Instance CPU
    ~~~~~~~~~~~~
                  % of total CPU for Instance:      13.0
                  % of busy  CPU for Instance:      94.7
      %DB time waiting for CPU - Resource Mgr:       0.0
    Memory Statistics
    ~~~~~~~~~~~~~~~~~                       Begin          End
                      Host Mem (MB):     49,152.0     49,152.0
                       SGA use (MB):      3,072.0      3,072.0
                       PGA use (MB):        513.5        467.7
        % Host Mem used for SGA+PGA:         7.29         7.20
    Time Model Statistics            
    -> Total time in database user-calls (DB Time): 22960.5s
    -> Statistics including the word "background" measure background process
       time, and so do not contribute to the DB time statistic
    -> Ordered by % or DB time desc, Statistic name
    Statistic Name                                       Time (s) % of DB Time
    sql execute elapsed time                             22,835.9         99.5
    DB CPU                                                3,748.4         16.3
    parse time elapsed                                       15.4           .1
    hard parse elapsed time                                  14.3           .1
    PL/SQL execution elapsed time                             7.5           .0
    PL/SQL compilation elapsed time                           6.0           .0
    connection management call elapsed time                   1.6           .0
    sequence load elapsed time                                0.4           .0
    hard parse (sharing criteria) elapsed time                0.0           .0
    repeated bind elapsed time                                0.0           .0
    failed parse elapsed time                                 0.0           .0
    DB time                                              22,960.5
    background elapsed time                                 238.1
    background cpu time                                       4.9
    Operating System Statistics        
    -> *TIME statistic values are diffed.
       All others display actual values.  End Value is displayed if different
    -> ordered by statistic type (CPU Use, Virtual Memory, Hardware Config), Name
    Statistic                                  Value        End Value
    BUSY_TIME                                396,506
    IDLE_TIME                              2,483,725
    IOWAIT_TIME                              455,495
    NICE_TIME                                      0
    SYS_TIME                                  16,163
    USER_TIME                                380,052
    LOAD                                           1                2
    RSRC_MGR_CPU_WAIT_TIME                         0
    VM_IN_BYTES                       95,646,943,232
    VM_OUT_BYTES                       1,686,059,008
    PHYSICAL_MEMORY_BYTES             51,539,607,552
    NUM_CPUS                                       8
    NUM_CPU_CORES                                  8
    NUM_CPU_SOCKETS                                8
    GLOBAL_RECEIVE_SIZE_MAX                4,194,304
    GLOBAL_SEND_SIZE_MAX                   1,048,586
    TCP_RECEIVE_SIZE_DEFAULT                  87,380
    TCP_RECEIVE_SIZE_MAX                   4,194,304
    TCP_RECEIVE_SIZE_MIN                       4,096
    TCP_SEND_SIZE_DEFAULT                     16,384
    TCP_SEND_SIZE_MAX                      4,194,304
    TCP_SEND_SIZE_MIN                          4,096
    Operating System Statistics -
    Snap Time           Load    %busy    %user     %sys    %idle  %iowait
    29-Feb 04:00:35      1.4      N/A      N/A      N/A      N/A      N/A
    29-Feb 05:00:41      1.7     13.8     13.2      0.6     86.2     15.8
    Foreground Wait Class              
    -> s  - second, ms - millisecond -    1000th of a second
    -> ordered by wait time desc, waits desc
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
    -> Captured Time accounts for         97.6%  of Total DB time      22,960.46 (s)
    -> Total FG Wait Time:            18,651.75 (s)  DB CPU time:       3,748.35 (s)
                                                                      Avg
                                          %Time       Total Wait     wait
    Wait Class                      Waits -outs         Time (s)     (ms)  %DB time
    User I/O                    3,327,253     0           18,576        6      80.9
    DB CPU                                                 3,748               16.3
    Commit                         23,882     0               69        3       0.3
    System I/O                      1,035     0                3        3       0.0
    Network                       842,393     0                2        0       0.0
    Other                          10,120    99                0        0       0.0
    Configuration                       3     0                0       58       0.0
    Application                       264     0                0        1       0.0
    Concurrency                     1,482     0                0        0       0.0
    Foreground Wait Events            
    -> s  - second, ms - millisecond -    1000th of a second
    -> Only events with Total Wait Time (s) >= .001 are shown
    -> ordered by wait time desc, waits desc (idle events last)
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
                                                                 Avg
                                            %Time Total Wait    wait    Waits   % DB
    Event                             Waits -outs   Time (s)    (ms)     /txn   time
    db file sequential read       3,054,464     0     17,002       6    104.5   74.0
    read by other session           199,603     0        796       4      6.8    3.5
    direct path read                 46,301     0        439       9      1.6    1.9
    db file scattered read           21,113     0        269      13      0.7    1.2
    log file sync                    23,882     0         69       3      0.8     .3
    db file parallel read             4,727     0         68      14      0.2     .3
    control file sequential re        1,035     0          3       3      0.0     .0
    SQL*Net message to client       840,792     0          2       0     28.8     .0
    direct path read temp                95     0          2      18      0.0     .0
    local write wait                     79     0          0       4      0.0     .0
    Disk file operations I/O            870     0          0       0      0.0     .0
    ASM file metadata operatio            4     0          0      50      0.0     .0
    log file switch (private s            3     0          0      58      0.0     .0
    ADR block file read                  36     0          0       3      0.0     .0
    enq: RO - fast object reus            5     0          0      16      0.0     .0
    latch: cache buffers chain        1,465     0          0       0      0.1     .0
    SQL*Net break/reset to cli          256     0          0       0      0.0     .0
    asynch descriptor resize         10,059   100          0       0      0.3     .0
    SQL*Net more data to clien        1,510     0          0       0      0.1     .0
    enq: KO - fast object chec            3     0          0       8      0.0     .0
    SQL*Net more data from cli           91     0          0       0      0.0     .0
    latch: shared pool                   14     0          0       0      0.0     .0
    ADR block file write                  5     0          0       1      0.0     .0
    reliable message                      8     0          0       0      0.0     .0
    direct path write temp                1     0          0       2      0.0     .0
    SQL*Net message from clien      840,794     0     68,885      82     28.8
    jobq slave wait                   7,365   100      3,679     499      0.3
    Streams AQ: waiting for me          721   100      3,605    5000      0.0
    wait for unread message on        3,648    98      3,603     988      0.1
    KSV master wait                      20     0          0       0      0.0
    Background Wait Events            
    -> ordered by wait time desc, waits desc (idle events last)
    -> Only events with Total Wait Time (s) >= .001 are shown
    -> %Timeouts: value of 0 indicates value was < .5%.  Value of null is truly 0
                                                                 Avg
                                            %Time Total Wait    wait    Waits   % bg
    Event                             Waits -outs   Time (s)    (ms)     /txn   time
    log file parallel write          29,353     0         83       3      1.0   34.8
    db file parallel write            5,753     0         17       3      0.2    6.9
    db file sequential read           1,638     0         15       9      0.1    6.1
    control file sequential re        5,142     0         13       2      0.2    5.4
    os thread startup                   140     0          8      58      0.0    3.4
    control file parallel writ        1,440     0          8       6      0.0    3.4
    log file sequential read            304     0          8      26      0.0    3.3
    db file scattered read              214     0          2       9      0.0     .8
    ASM file metadata operatio        1,199     0          1       1      0.0     .3
    direct path write                    35     0          0       6      0.0     .1
    direct path read                     41     0          0       5      0.0     .1
    kfk: async disk IO                    6     0          0       9      0.0     .0
    Disk file operations I/O          1,266     0          0       0      0.0     .0
    ADR block file read                  16     0          0       2      0.0     .0
    read by other session                 3     0          0       8      0.0     .0
    Log archive I/O                       2     0          0      10      0.0     .0
    log file sync                         3     0          0       5      0.0     .0
    asynch descriptor resize            341   100          0       0      0.0     .0
    CSS initialization                    1     0          0       6      0.0     .0
    log file single write                 4     0          0       1      0.0     .0
    latch: redo allocation                3     0          0       1      0.0     .0
    ADR block file write                  5     0          0       1      0.0     .0
    LGWR wait for redo copy              45     0          0       0      0.0     .0
    CSS operation: query                  6     0          0       0      0.0     .0
    CSS operation: action                 1     0          0       1      0.0     .0
    SQL*Net message to client           420     0          0       0      0.0     .0
    rdbms ipc message                47,816    39     61,046    1277      1.6
    DIAG idle wait                    7,200   100      7,200    1000      0.2
    Space Manager: slave idle         1,146    98      5,674    4951      0.0
    class slave wait                    284     0      3,983   14026      0.0
    dispatcher timer                     61   100      3,660   60006      0.0
    Streams AQ: qmn coordinato          258    50      3,613   14003      0.0
    Streams AQ: qmn slave idle          130     0      3,613   27789      0.0
    Streams AQ: waiting for ti            7    71      3,608  515430      0.0
    wait for unread message on        3,605   100      3,606    1000      0.1
    pmon timer                        1,201   100      3,604    3001      0.0
    smon timer                           15    73      3,603  240207      0.0
    ASM background timer                754     0      3,602    4777      0.0
    shared server idle wait             120   100      3,601   30006      0.0
    SQL*Net message from clien          554     0          4       7      0.0
    KSV master wait                     101     0          0       2      0.0
    Wait Event Histogram              
    -> Units for Total Waits column: K is 1000, M is 1000000, G is 1000000000
    -> % of Waits: value of .0 indicates value was <.05%; value of null is truly 0
    -> % of Waits: column heading of <=1s is truly <1024ms, >1s is truly >=1024ms
    -> Ordered by Event (idle events last)
                                                        % of Waits
                               Total
    Event                      Waits  <1ms  <2ms  <4ms  <8ms <16ms <32ms  <=1s   >1s
    ADR block file read           52  73.1   1.9   9.6  13.5               1.9
    ADR block file write          10 100.0
    ADR file lock                 12 100.0
    ARCH wait for archivelog l     3 100.0
    ASM file metadata operatio  1203  97.3    .5    .7    .3    .2          .9
    CSS initialization             1                   100.0
    CSS operation: action          1       100.0
    CSS operation: query           6  83.3  16.7
    Disk file operations I/O    2118  95.4   4.5    .1
    LGWR wait for redo copy       45 100.0
    Log archive I/O                2                         100.0
    SQL*Net break/reset to cli   256  99.6    .4
    SQL*Net message to client  839.9 100.0    .0
    SQL*Net more data from cli    91 100.0
    SQL*Net more data to clien  1503 100.0
    asynch descriptor resize   10.4K 100.0
    buffer busy waits              2 100.0
    control file parallel writ  1440   5.7  35.1  24.0  16.3  12.0   5.5   1.5
    control file sequential re  6177  69.4   7.5   5.9   8.1   7.1   1.7    .3
    db file parallel read       4727   1.7   3.2   3.2  10.1  46.6  33.3   1.8
    db file parallel write      5755  42.3  21.3  18.6  11.2   4.6   1.4    .5
    db file scattered read     21.5K   8.4   4.3  11.9  18.9  26.3  25.3   4.9
    db file sequential read    3053.  28.7  15.1  11.1  17.9  21.5   5.4    .3    .0
    direct path read           46.3K   9.9   8.8  18.5  21.7  22.8  15.7   2.7
    direct path read temp         95               9.5   9.5  23.2  49.5   8.4
    direct path write             35  11.4  31.4  17.1  22.9  11.4   2.9   2.9
    direct path write temp         1       100.0
    enq: KO - fast object chec     3                    66.7  33.3
    enq: RO - fast object reus     5  20.0              20.0  20.0  20.0  20.0
    kfk: async disk IO             6  50.0  16.7              16.7        16.7
    latch free                     3 100.0
    latch: cache buffers chain  1465 100.0
    latch: cache buffers lru c     1 100.0
    latch: object queue header     2 100.0
    latch: redo allocation         3  33.3  33.3  33.3
    latch: row cache objects       2 100.0
    latch: shared pool            15  93.3   6.7
    local write wait              79        35.4  34.2  21.5   8.9
    log file parallel write    29.4K  47.8  21.7  11.9   9.9   6.8   1.6    .3
    log file sequential read     304   6.3   3.0   3.6  10.2  23.4  24.3  29.3
    log file single write          4  25.0  75.0
    log file switch (private s     3                                     100.0
    log file sync              23.9K  40.9  28.0  12.9   9.7   6.7   1.5    .3
    os thread startup            140                                     100.0
    read by other session      199.6  37.1  19.9  12.9  13.1  13.8   3.1    .2
    reliable message               8 100.0
    ASM background timer         755   2.9    .4    .1    .1    .3    .1    .3  95.8
    DIAG idle wait              7196                                     100.0
    KSV master wait              121  88.4   2.5   3.3   2.5    .8    .8   1.7
    SQL*Net message from clien 840.1  97.1   1.8    .5    .2    .2    .1    .0    .1
    Space Manager: slave idle   1147    .1                                  .5  99.4
    Streams AQ: qmn coordinato   258  49.6                .4                    50.0
    Streams AQ: qmn slave idle   130    .8                                      99.2
    Streams AQ: waiting for me   721                                           100.0
    Streams AQ: waiting for ti     7  28.6                                42.9  28.6
    class slave wait             283  39.9   2.5   2.5   3.5   4.9   9.2  15.2  22.3
    dispatcher timer              60                                           100.0
    jobq slave wait             7360    .0    .0    .0                    99.9
    pmon timer                  1201                                           100.0
    rdbms ipc message          47.8K   2.7  31.6  17.4   1.1   1.1    .9  20.9  24.3
    Wait Event Histogram               DB/Inst: I2KPROD/I2KPROD  Snaps: 5606-5607
    -> Units for Total Waits column: K is 1000, M is 1000000, G is 1000000000
    -> % of Waits: value of .0 indicates value was <.05%; value of null is truly 0
    -> % of Waits: column heading of <=1s is truly <1024ms, >1s is truly >=1024ms
    -> Ordered by Event (idle events last)
                                                        % of Waits
                               Total
    Event                      Waits  <1ms  <2ms  <4ms  <8ms <16ms <32ms  <=1s   >1s
    shared server idle wait      120                                           100.0
    smon timer                    16                                       6.3  93.8
    wait for unread message on  7250                                  .1  99.9
    Latch Miss Sources                
    -> only latches with sleeps are shown
    -> ordered by name, sleeps desc
                                                         NoWait              Waiter
    Latch Name               Where                       Misses     Sleeps   Sleeps
    In memory undo latch     ktichg: child                    0          1        0
    active service list      kswslogon: session logout        0          2        0
    cache buffers chains     kcbgtcr_2                        0      1,123      483
    cache buffers chains     kcbgtcr: fast path (cr pin       0        496    1,131
    cache buffers chains     kcbrls_2                         0          5        6
    cache buffers chains     kcbgcur_2                        0          4        0
    cache buffers chains     kcbgtcr: fast path               0          3        1
    cache buffers chains     kcbzwb                           0          2        4
    cache buffers chains     kcbchg1: kslbegin: bufs no       0          1        0
    cache buffers chains     kcbnew: new latch again          0          1        0
    cache buffers chains     kcbrls_1                         0          1        6
    cache buffers chains     kcbzgb: scan from tail. no       0          1        0
    cache buffers lru chain  kcbzgws                          0          1        0
    object queue header oper kcbo_switch_cq                   0          1        0
    object queue header oper kcbo_switch_mq_bg                0          1        2
    redo allocation          kcrfw_redo_gen: redo alloc       0          3        0
    row cache objects        kqrpre: find obj                 0          1        1
    row cache objects        kqrso                            0          1        0
    shared pool              kghalo                           0         13        3
    shared pool              kghupr1                          0          4       15
    shared pool              kghalp                           0          1        0
    space background task la ktsj_grab_task                   0          2        2
              -------------------------------------------------------------

  • Performance issue with high CPU and IO

    Hi guys,
    I am encountering huge user response time on a production system and I don’t know how to solve it.
    Doing some extra tests and using the instrumentation that we have in the code we concluded that the DB is the bottleneck.
    We generated some AWR reports and noticed the CPU was in top wait events. Also noticed that in a random manner some simple sql take a long time to execute. We activated the sql trace on the system and noticed that for very simple SQLs (unique index access on one table) we have huge exec times. 9s
    In the trace file the huge time we had it in fetch area: 9.1s cpu and elapsed 9.2.
    And no or very small waits for this specific SQL.
    it seems like the bottle neck is on the CPU but at that point there were very few processes running on the DB. Why can we have such a big cpu wait on a simple select? This is a machine with 128 cores. We have quicker responses on machines smaller/busier than this.
    We noticed that we had a huge db_cache_size (12G) and after we scale it down we noticed some improvements but not enough. How can I prove that there is a link between high CPU and big cache_size? (there was not wait involved in SQL execution). what can we do in the case we need big DB cache size?
    The second issue is that I tried to execute an sql on a big table (FTS on a big table. no join). Again on that smaller machine it runs in 30 seconds and on this machine it runs in 1038 seconds.
    Also generated a trace for this SQL on the problematic machine:
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1    402.08    1038.31    1842916    6174343          0           1
    total        3    402.08    1038.32    1842916    6174343          0           1
      db file sequential read                     12419        0.21         40.02
      i/o slave wait                             135475        0.51        613.03
      db file scattered read                     135475        0.52        675.15
      log file switch completion                      5        0.06          0.18
      latch: In memory undo latch                     6        0.00          0.00
      latch: object queue header operation            1        0.00          0.00
    ********************************************************************************The high CPU is present here also but here I have huge wait on db file scattered read.
    Looking at the session with the select the AWG_wait for db scattered read was 0.5. on the other machine it is like 0.07.
    I though this is an IO issue. I did some IO tests at SO level and it seems like the read and writes operation are very fast…much faster than the machine that has the awg_wait smaller. Why the difference in waits?
    One difference between these two DBs is that the problem one has the db block size = 16k and the other one has 8k.
    I received some reports done at OS level on CPU and IO usage on the problematic machine (in normal operations). It seems like the CPU is very used and the IO stays very low.
    On the other machine, the smaller and the faster one, it is other way around.
    What is the problem here? How can I test further? Can I link the high CPU to low/slow IO?
    we have 10G on sun os with ASM.
    Thanks in advance.

    Yes, there are many things you can and should do to isolate this. But first check MOS Poor Performance With Oracle9i and 10g Releases When Using Dynamic Intimate Shared Memory (DISM) [ID 1018855.1] isn't messing you up to start.
    Also, be sure and post exact patch levels for both Oracle and OS.
    Be sure and check all your I/O settings and see what MOS has to say about those.
    Are you using ASSM? See Long running update
    Since it got a little better with shrinking the SGA size, that might indicate (wild speculation here, something like) one of the problems is simply too much thrashing within the SGA, as oracle decides "small" objects being full scanned in memory is faster than range scans (or whatever) from disk, overloading the cpu, not allowing the cpu to ask for other full scans from I/O. Possibly made worse by row level locking, or some other app issue that just does too much cpu.
    You probably have more than one thing wrong. High fetch count might mean you need to adjust the array size on the clients.
    Now that that is all out of the way, if you still haven't found the problem, go through http://oracle-randolf.blogspot.com/2009/02/basic-sql-statement-performance.html
    Edit: Oh, see Solaris 10 memory management conflicts with Automatic PGA Memory Management [ID 460424.1] too.
    Edited by: jgarry on Nov 15, 2011 1:45 PM

  • Need help on tuning materialized view refresh

    Hi All,
    I am working on materialized view refresh tuning.Initially it was complete refresh and used to take more than 90 mins to complete.
    I changed it to fast refresh now it is completing fast. Now i have partitioned the base tables gl_balances and gl_code_combinations of column code_combination_id and created a local index on column code_combination_id then i am trying to partition the materialized on the same column to take advantage of partition change tracking.
    Size of gl_balances base tables is 40Gb and all others tables sizes are small. In where clause there all the 4 tables are mapped. If i will create the partition only on code_combination_id will i the materialized will become the candidate for partition change tracking. As i know it will be applicable for PCT. I need expert advice on this.
    While doing a fast refresh. the refresh takes less time. when there is a change in gl_balances , gl_code_combinations or gl_periods it completes in 20-30 mins. When there is a change in gl_set_of_books tables. It creates a problem here.DEL query takes more than 48 hours to complete.
    CREATE MATERIALIZED VIEW apps.BAL_PART
    REFRESH FAST ON DEMAND
    ENABLE QUERY REWRITE as
    SELECT GL.GL_CODE_COMBINATIONS21.ROWID C1,GL.GL_BALANCES21.ROWID C2, GL.GL_SETS_OF_BOOKS.ROWID C3,
    GL.GL_PERIOD.ROWID C4,
    "GL"."GL_BALANCES21"."ACTUAL_FLAG" ,
    "GL"."GL_BALANCES21"."CURRENCY_CODE" ,
    "GL"."GL_BALANCES21"."PERIOD_NUM" ,
    "GL"."GL_BALANCES21"."PERIOD_YEAR" ,
    "GL"."GL_BALANCES21"."SET_OF_BOOKS_ID" "SOB_ID",
    "GL"."GL_CODE_COMBINATIONS21"."CODE_COMBINATION_ID" "CCID",
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT1" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT10" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT11" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT12" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT13" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT14" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT2" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT3" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT4" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT5" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT6" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT7" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT8" ,
    "GL"."GL_CODE_COMBINATIONS21"."SEGMENT9" ,
    "GL"."GL_PERIODS"."PERIOD_NAME" ,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_CR", 0) Open_Bal_Cr,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_CR", 0) +
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_CR", 0) Close_Bal_Cr,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_DR", 0) Open_Bal_Dr,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_DR", 0) +
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_DR", 0) Close_Bal_Dr,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_DR", 0) -
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_CR", 0) Open_Bal,
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_DR", 0) -
    NVL("GL"."GL_BALANCES21"."BEGIN_BALANCE_CR", 0) +
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_DR", 0) -
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_CR", 0) Close_Bal,
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_CR", 0) Period_Cr,
    NVL("GL"."GL_BALANCES21"."PERIOD_NET_DR", 0) Period_Dr
    FROM GL.GL_CODE_COMBINATIONS21,
    GL.GL_BALANCES21,
    GL.GL_SETS_OF_BOOKS,
    GL.GL_PERIODS
    WHERE GL.GL_BALANCES21.CODE_COMBINATION_ID =GL.GL_CODE_COMBINATIONS21.CODE_COMBINATION_ID
    AND GL.GL_SETS_OF_BOOKS.SET_OF_BOOKS_ID = GL.GL_BALANCES21.SET_OF_BOOKS_ID
    AND GL.GL_PERIODS.PERIOD_NUM = GL.GL_BALANCES21.PERIOD_NUM
    AND GL.GL_PERIODS.PERIOD_YEAR = GL.GL_BALANCES21.PERIOD_YEAR
    AND GL.GL_PERIODS.PERIOD_TYPE = GL.GL_BALANCES21.PERIOD_TYPE
    AND GL.GL_PERIODS.PERIOD_NAME = GL.GL_BALANCES21.PERIOD_NAME
    AND GL.GL_PERIODS.PERIOD_SET_NAME = GL.GL_SETS_OF_BOOKS.PERIOD_SET_NAME
    and gl.GL_CODE_COMBINATIONS21.summary_flag != 'Y'TRACE 1046 del statement
    DELETE FROM "APPS"."apps.BAL_PART" SNA$
    WHERE "C3" IN (SELECT /*+ NO_MERGE  */ * FROM (SELECT 
      CHARTOROWID("MAS$"."M_ROW$$") RID$     FROM "GL"."MLOG$_GL_SETS_OF_BOOKS"
      "MAS$"   WHERE "MAS$".SNAPTIME$$ > :B_ST1 ) AS OF SNAPSHOT(:B_SCN) MAS$)
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1  17759.00  171782.99  159422121    1267371 2564144739           0
    Fetch        0      0.00       0.00          0          0          0           0
    total        2  17759.00  171782.99  159422121    1267371 2564144739           0
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 175  (APPS)   (recursive depth: 1)
    Rows     Row Source Operation
          0  DELETE  apps.BAL_PART (cr=0 pr=0 pw=0 time=0 us)
    193128740   NESTED LOOPS  (cr=592437 pr=592422 pw=0 time=945244160 us cost=339302 size=168 card=1)
          3    SORT UNIQUE (cr=7 pr=0 pw=0 time=15832 us cost=2 size=138 card=1)
         24     TABLE ACCESS FULL MLOG$_GL_SETS_OF_BOOKS (cr=7 pr=0 pw=0 time=19 us cost=2 size=138 card=1)
    193128740    INDEX RANGE SCAN C3BOOKS (cr=592430 pr=592422 pw=0 time=789499200 us cost=339299 size=3318314250 card=110610475)(object id 2114736)
    error during execute of EXPLAIN PLAN statement
    ORA-08187: snapshot expression not allowed here
    parse error offset: 314
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                   159520897        2.12     144415.96
      latch: cache buffers chains                   134        0.06          0.68
      latch: undo global data                        33        0.02          0.15
      latch: object queue header operation          521        0.02          0.53
      log file switch (private strand flush incomplete)
                                                    532        0.31         28.26
      resmgr:cpu quantum                            155        1.40         13.49
      resmgr:internal state change                   25        0.11          2.21
      latch free                                     10        0.00          0.00
      latch: cache buffers lru chain                  4        0.00          0.00
      rdbms ipc reply                               489        0.02          0.54
      reliable message                              587        0.00          0.56
      latch: row cache objects                        3        0.00          0.00
    ********************************************************************************GL_SETS_OF_BOOKS has only 6 rows. I know there is complete refresh as a option which will again take more than 90 mins.
    I want to do the fast refresh. Tables rows details below.
    SQL> select count(*) from gl.gl_code_combinations21;
    COUNT(*)
    3075255
    SQL> select count(*) from gl.GL_PERIODS;
    COUNT(*)
    1160
    SQL> select count(*) from gl.gl_balances21;
    COUNT(*)
    477613527
    SQL> select count(*) from gl.gl_sets_of_books;
    COUNT(*)
    6gl_sets_of_books has less rows. Whenever there is a change then it mapped to huge rows hence during materialized view has delete huge number of rows.
    select count(*) from apps.BAL_PART group by C3;
    C3 is the rowid which is present in create materialized statement.
    COUNT(*)
    292927011
    210215
    69330
    184406971
    Is there any way to improve the plan. As i created a partition on code_combination_id and local index on code_combination_id which will not help in set_of_books_id case. I dont PCT will help here or not. Is it possible to use PCT refresh by equipartitioning only one column in where clause.
    Please assist me in improving refresh of materialized view using fast refresh.
    Thanks and Regards,
    Edited by: user646034 on Feb 23, 2013 11:13 PM
    Edited by: user646034 on Feb 23, 2013 11:19 PM
    Edited by: user646034 on Feb 23, 2013 11:46 PM
    Edited by: user646034 on Feb 25, 2013 11:46 AM

    Hi
    The below explain without index and with index.
    /* MV_REFRESH (DEL) */ DELETE FROM "APPS"."BAL_PART                                                                                                                                                                                                                                                                                                                                                                                                                
    " SNA$ WHERE "C3" IN (SELECT /*+ NO_MERGE  */ * FROM (SELECT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    CHARTOROWID("MAS$"."M_ROW$$") RID$     FROM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    "GL"."MLOG$_GL_SETS_OF_BOOKS" "MAS$"   WHERE "MAS$".SNAPTIME$$ > :B_ST1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    ) AS OF SNAPSHOT(:B_SCN) MAS$)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    Plan hash value: 2704021294                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Id  | Operation            | Name                          | E-Rows |E-Bytes| Cost (%CPU)| E-Time   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   0 | DELETE STATEMENT     |                               |        |       |   339K(100)|          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   1 |  DELETE              | BAL_PART                          |        |       |            |          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   2 |   NESTED LOOPS       |                               |      1 |   168 |   339K  (1)|999:59:59 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   3 |    SORT UNIQUE       |                               |      1 |   138 |     2   (0)| 00:02:31 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   4 |     TABLE ACCESS FULL| MLOG$_GL_SETS_OF_BOOKS        |      1 |   138 |     2   (0)| 00:02:31 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    |   5 |    INDEX RANGE SCAN  | C3BOOKS                       |    110M|  3164M|   339K  (0)|999:59:59 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    If i will not use the C3 index then the query will use the belolw plan, I guess this will also take same time or more time.
    |   0 | DELETE STATEMENT       |                               |        |       |  9743K(100)|          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    |   1 |  DELETE                | BAL_PART                          |       |            |          |                                                                                                                                                                                                                                                                                                                                                                                                     

  • How can we take the cursor to a different sub-screen from the BADI?

    Hi,
    We have to do some validation on Header, Operation and Relationship of any work order (IW31, IW32). We have checked that validations can be done at BADI WORKORDER_UPDATE in the method u2018AT_SAVEu2019.  But user wants us to take the Cursor back to the field and screen due to which the error is coming. How can we take the cursor to a different sub-screen from the BADI?
    Thanks in Advance,
    Pranav

    You 'ran out of room' because you tried to put your entire question into what is the 'Topic line' of the post.
    This is a fairly common error, as a scan of the topic list will show, and likely due to a design flaw in the layout of the composition page.
    Most posters who make this error do so on their first post, and are able to avoid a similar misstep on their second and subsequent questions.
    Regards,
    Barry

  • Error while uploading the general maintenance task list with LSMW

    Hi friends,
    I am uploading the general maintenance task list with the help of Standard Batch/Direct input method in LSMW. I am using the internal number range for task list.
    First task list is getting created properly, but while creating second task list, system is giving the error as "external number range is not assigned for task list and task list with this group ID is already created in the system."
    This is because, on initial screen, system automatically takes the group ID of the task list that is created earlier.
    My question is
    1. How to get rid of the group number that is automatically gets populated in group field of initial screen, while creating the next task list?
    2. Is it possible to assign a common identifier in all structure (Header, Operation etc) for single task list, so that system can differentiate between two task lists?
    In Equipment task list, we can differentiate the task list with equipment id and group counter.
    Please note the following point before replying to my question.
    1. I don't want to upload the general maintenance task list with external number assignment.
    Thanks in advance for early reply.

    I have the same problem....
    Please can somebody help me?

  • How to attempt production orders and get feedback by using IDocs

    Hi,
    I'm new new to SAP and R3 respectively mySAP. I need to know how to use IDocs (over file system) to attempt production orders to an extern application and how to get the feedback of the whole orders and single operations.
    I found the IDoc-base-type "PPCC2RECORDER01" to send production orders. Is that the right base type for production orders?
    (In consideration of compatibility and support me was recommend to avoid the old types OPERA2 and CONF21.)
    What IDoc-types do I need to get feedback about a production order and its operations?
    I hope someone is understanding my questions is able to help me. Please apologize my broken English.
    Thanks!
    Hannes

    PROGRAM....... ZRCCLORDPROC
    TITLE......... Production Odrer Idocs
    AUTHOR........ Aveek Ghose
    DATE WRITTEN.. 15/09/2006
    R/3 RELEASE... 4.6C
    =====================================================================*
    COPIED FROM... N/A
    DESCRIPTION...
    *& Creation of production order IDOCs to a given selection
    *& This program selects to an input given via the selection screen the *
    *& corresponding production orders from the database. Then the function
    *& module for creation of planned order idocs is called.               *
    *& In general this report is called from the report RCCLTRAN, but it   *
    *& can also be used for its own.                                       *
    =====================================================================*
    PROGRAM TYPE.. Outbound Interface
    DEV. CLASS.... ZPD1
    LOGICAL DB.... N/A
    =====================================================================*
    SCREENS....... N/A
    GUI TITLE..... N/A
    GUI STATUS.... N/A
    TRANSACTIONS.. N/A
    USER EXITS.... N/A
    =====================================================================*
    CHANGE HISTORY                                                       *
    Date       By        Correction Number & Brief Description     Release
    Tables / Structures
    REPORT  zrcclordproc
            NO STANDARD PAGE HEADING
            MESSAGE-ID ZCUST
            LINE-COUNT 65(0)
            LINE-SIZE 255.
    INCLUDE RCORDO01.                    " PBO-Modules                   *
    INCLUDE RCORDI01.                    " PAI-Modules                   *
    INCLUDE RCORDF01.                    " FORM-Routines                 *
    --> Global data
    TYPE-POOLS: cloi.
    include zprodata.        "Types / constants for Orderselection
    include zrcordtop.                      "Tables / Data for this report
    include zrcordtop1.
    include yrccl_constants.
    TABLES : jcds,
             tvarv,
             zzzz_xref_data.
    TYPES:  BEGIN OF ty_date,
              aufnr  TYPE aufnr,
              aedat  TYPE aufaedat,
              aezeit TYPE co_chg_time,
              erdat  TYPE auferfdat,
              erfzeit TYPE co_ins_time,
              loekz  TYPE aufloekz,
              indicator(1) TYPE c,
           END OF ty_date.
    DATA: is_enhancement type isu_ord_segments_determine.
    DATA: itab_date TYPE STANDARD TABLE OF ty_date
                         INITIAL SIZE 0 WITH HEADER LINE.
    DATA: f_objnr TYPE j_objnr.
    DATA: g_report_sub_head(72) TYPE c,          "Sub-Header hold area
          g_report_head(72)     TYPE c,          "Header hold area
          g_run_date(72)        TYPE c,          "Holds message for Run date
          g_run_time(72)        TYPE c.          "Holds message for Run time
    DATA:
    f_old_date TYPE datum,
    f_old_time TYPE uzeit,
    f_continue(1) TYPE c.
    END OF INSERTION DS001
    --> Überschrift für sonstige Einstellungen
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN BEGIN OF BLOCK miscellaneous WITH FRAME.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN COMMENT 1(30) text-001. "#EC
    SELECTION-SCREEN SKIP 1.
    *>> Logical system comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-002.
    SELECTION-SCREEN POSITION 35.
    PARAMETERS opt_sys LIKE tbdlst-logsys.
    SELECTION-SCREEN END OF LINE.
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-003.
    SELECTION-SCREEN POSITION 35.
    PARAMETERS mestyp LIKE tbdme-mestyp.
    SELECTION-SCREEN END OF LINE.
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-004.
    SELECTION-SCREEN POSITION 35.
    PARAMETERS:     p_date     TYPE sydatum.       "last run date
    SELECTION-SCREEN END OF LINE.
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-005.
    SELECTION-SCREEN POSITION 35.
    PARAMETERS:     p_time     TYPE syuzeit.       "last run time
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK MISCELLANEOUS.
    *MOD-006
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-006.
    SELECTION-SCREEN POSITION 35.
    PARAMETERS: p_update   AS   CHECKBOX DEFAULT space.
    SELECTION-SCREEN END OF LINE.
    *MOD-006
    *MOD-006
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-007.
    SELECTION-SCREEN POSITION 32.
    SELECT-OPTIONS: s_rundt FOR sy-datum NO-EXTENSION.
    SELECTION-SCREEN END OF LINE.
    *MOD-006
    *MOD-006
    *>> Messagetype comes from Report RCCLTRANS
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(30) text-008.
    SELECTION-SCREEN POSITION 32.
    SELECT-OPTIONS: s_runtm FOR sy-uzeit NO-EXTENSION.
    SELECTION-SCREEN END OF LINE.
    *MOD-006
    **MOD-006
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT 3(30) text-009.
    *SELECTION-SCREEN POSITION 32.
    *SELECT-OPTIONS: s_emat FOR zzzz_xref_data-z_in_value.
    *SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK miscellaneous.
    **MOD-006
    Write selected AUFPL numbers via ranges table to memory ?
    PARAMETERS:
      ordtomem TYPE cloi_x DEFAULT '' NO-DISPLAY.  "X: yes
    do not select from MARC, but use ranges tables directly.   MK 4.0C
    matnr_gl and werks_gl must have the same length.
    PARAMETERS: no_sel  TYPE c DEFAULT ' ' NO-DISPLAY.
    --> Normal selection parameters for ORD comes from the logical db
    *&   Event START-OF-SELECTION
    START-OF-SELECTION.
    --> Select the ORD according to the selected
        MRP controller, Material, work center and plant
    *MOD-006
    Validate the last run date & Time
    PERFORM validate_last_run_date_time.
    *MOD-006
    BEGIN OF INSERTION DS001
    get the entry of the last program run
    select single * for update from ycloidownlprot
                     where logsys = OPT_SYS and
                           downloadtype eq C_DOWNL_PROCESS_ORDERS.
    if YCLOIDOWNLPROT-IN_PROGRESS eq CLOI_TRUE.
    program is already running, do not allow to start again
       write : / text-004, YCLOIDOWNLPROT-USERNAME.
       exit.
    endif.
    YCLOIDOWNLPROT-MANDT        = SY-MANDT.
    YCLOIDOWNLPROT-LOGSYS       = OPT_SYS.
    YCLOIDOWNLPROT-START_DATE   = SY-DATUM.
    YCLOIDOWNLPROT-START_TIME   = SY-UZEIT.
    YCLOIDOWNLPROT-USERNAME     = SY-UNAME.
    YCLOIDOWNLPROT-DOWNLOADTYPE = C_DOWNL_PROCESS_ORDERS.
    YCLOIDOWNLPROT-IN_PROGRESS  = CLOI_TRUE.
    insert or update entry (dependant if entry already exists)
    MODIFY YCLOIDOWNLPROT.
    COMMIT WORK.
    CLEAR CREATED_MASTERIDOCS_PRO.
    EXPORT CREATED_MASTERIDOCS_PRO TO MEMORY ID 'YLOI001'.
    END OF INSERTION DS001
    BEGIN OF INSERTION DS001
    if not sscrfields-ucomm = 'ONLI'.   mk zu 4.0
      exit.
    endif.
    if s_dispo is initial and
        s_matnr is initial and
        s_arbpl is initial and
        s_werks is initial.
       exit.
    endif.
    Send only orders with type 40 - process orders
    p_autyp = '40'.
    END OF INSERTION DS001
    *>> Put the ranges tabs back into matwrk list if no selection (NO_SEL)
      IF no_sel = cloi_true.
        CLEAR t_matwrk_key. REFRESH t_matwrk_key.
        LOOP AT s_matnr.
          t_matwrk_key-matnr = s_matnr-low.
          READ TABLE s_werks  INDEX sy-tabix.
          t_matwrk_key-werks  = s_werks-low.
          APPEND t_matwrk_key.
        ENDLOOP.
        SORT t_matwrk_key BY matnr werks.
        DELETE ADJACENT DUPLICATES FROM t_matwrk_key.
    delete duplicate duplicates from ranges table. Therfore sort by LOW
    (HIGH is not used in this case).
        SORT s_matnr BY low.
        DELETE ADJACENT DUPLICATES FROM s_matnr.
        SORT s_werks BY low.
        DELETE ADJACENT DUPLICATES FROM s_werks.
      ENDIF.
    --> Determine which segments are selected in the message type
      PERFORM ord_segments_determine
        USING mestyp
        CHANGING afpo_x
                 jstk_x
                 afab_x
                 affl_x
                 afvo_x
                 kbed_x
                 jstv_x
                 resb_x
                 kbeu_x
                 afuv_x
                 is_enhancement
                 jstu_x.
    Export the flags to the memory, because the following subroutine
    must not have any parameters !!!
      EXPORT affl_x
             afvo_x
             kbed_x
             resb_x
             kbeu_x
             afuv_x
             TO MEMORY ID 'LOI03'.
    MK 19980326 enhanced selections on header/operation level
    get selection profile for log system from customizing if available
      SELECT SINGLE * FROM tcloi9 WHERE logsys = opt_sys.
    if entry exists for the logical system
      IF sy-subrc = 0.
    if an selection profile for the order is entered, use it for selection
        IF NOT tcloi9-ord_selid IS INITIAL.
          p_selid = tcloi9-ord_selid.
        ENDIF.
        IF NOT tcloi9-ord_opr_selid IS INITIAL AND
           NOT afvo_x IS INITIAL AND NOT affl_x IS INITIAL.
          ord_opr_selid = tcloi9-ord_opr_selid.
        ENDIF.
      ENDIF.
    initialize control key table for selections
      CALL FUNCTION 'CLOI_STEUS_GET'
           EXPORTING
                logsys_to_init         = opt_sys
           IMPORTING
                no_entry_for_logsys    = no_entry_for_logsys
           TABLES
                t_steus                = t_steus
           EXCEPTIONS
                logsys_not_initialized = 1
                OTHERS                 = 2.
    Write structure information into the memory
    perform fill_memory_selobj.
    -> import table with already sent orders
      IMPORT gt_aufnrdone FROM MEMORY ID 'LOIAUFNRTAB'.         "N599845
      SORT gt_aufnrdone BY low.                                 "N599845
    --> Read header information
    GET ioheader.
      Check if material/plant combination is selected MK 4.0C
      CLEAR check_flg.
      IF no_sel = cloi_true.
        READ TABLE t_matwrk_key
                   WITH  KEY matnr = ioheader-matnr
                             werks = ioheader-werks BINARY SEARCH.
        IF sy-subrc  <> 0.
          check_flg = cloi_true.
        ENDIF.
      ENDIF.
    -> check if order was already sent
      IF NOT gt_aufnrdone[] IS INITIAL.                         "N599845
        READ TABLE gt_aufnrdone WITH KEY                        "N599845
          low = ioheader-aufnr                                  "N599845
          TRANSPORTING NO FIELDS                                "N599845
          BINARY SEARCH.                                        "N599845
        IF sy-subrc = 0.                                        "N599845
        -> order already sent
          check_flg = cloi_true.                                "N599845
        ENDIF.                                                  "N599845
      ENDIF.                                                    "N599845
    leave GET routine if check_flg is set.
      CHECK check_flg IS INITIAL.
      CLEAR t_afpo. REFRESH t_afpo.
      CLEAR t_affl. REFRESH t_affl.
      MOVE-CORRESPONDING ioheader TO t_afko.
    GET ioheader LATE.
    BEGIN OF INSERTION DS001
    Check whether the process order has been changed since the last
    run of the program
    clear f_continue.
    if the CHANGED date is greater than the last run or initial
    IF IOHEADER-AEDAT  GT F_OLD_DATE OR
           ( ioheader-aedat  is initial and
             ioheader-aezeit is initial ).
    if the CHANGED date is initial check the creation date
       if ioheader-aedat is initial.
    if the creation date is greater than or equal to the date of the last
    run, if it is equal the creation time must be later or equal to the
    start time of the last run
         IF IOHEADER-ERDAT GT F_OLD_DATE OR
            ( IOHEADER-ERDAT EQ F_OLD_DATE AND
              IOHEADER-ERFZEIT GE F_OLD_TIME ).
           f_continue = 'X'.
         endif.
       else.
         f_continue = 'X'.
       endif.
    if the CHANGED dat is not initial check it against the last run
    ELSEIF IOHEADER-AEDAT  EQ F_OLD_DATE AND
            IOHEADER-AEZEIT GE F_OLD_TIME.
       f_continue ='X'.
    endif.
    Aenderung 295/99  Selektions-Aenderung vom 26. August 99
    Wenn Auftrag bereits techn. abgeschlossen ist, so darf kein IDOC
    erzeugt werden, wenn Auftrag zum löschen vorgemerkt wird.
    CONCATENATE 'OR' IOHEADER-AUFNR INTO F_OBJNR.
    SELECT SINGLE * FROM JEST
                     WHERE OBJNR = F_OBJNR
                     AND   STAT  = 'I0045'.
    IF JEST-INACT EQ SPACE AND SY-SUBRC EQ 0.
       SELECT * FROM JCDS WHERE OBJNR EQ F_OBJNR AND
                                STAT  EQ 'I0045' AND
                                INACT EQ SPACE.
    letzte Aenderung des Status TABG wird geprueft    Beg. WA 354/99
       ENDSELECT.
      IF ( F_OLD_DATE GT JCDS-UDATE OR                         " Beg JB_02
          ( F_OLD_DATE EQ JCDS-UDATE AND
           F_OLD_TIME GT JCDS-UTIME ) ) AND                    " End JB_02
          SY-SUBRC EQ 0.
         CLEAR F_CONTINUE.
       ENDIF.
    ENDIF.
    Ende 295/99
    check f_continue eq 'X'.
    END OF INSERTION DS001
      t_afko-t_afpo = t_afpo[].
      t_afko-t_jstk = t_jstk[].
      t_afko-t_affl = t_affl[].
      t_afko-t_afab = t_afab[].
      APPEND t_afko.
      IF jstk_x = cloi_x.
        t_objnr-objnr = ioheader-objnr.
        APPEND t_objnr.
      ENDIF.
    *---> Remember the orders that are already selected for the global
        selection parameters
      IF ordtomem = cloi_x.                "write order numbers to memory
        t_aufnr_range_done-sign = 'I'.
        t_aufnr_range_done-option = 'NE'.
        t_aufnr_range_done-low = ioheader-aufpl.
        APPEND t_aufnr_range_done.
      ENDIF.
    *---> Remember the orders internal/external keys for AFAB (relationship)
      IF afab_x = cloi_x.
        MOVE-CORRESPONDING ioheader TO t_aufpl_aufnr.
        APPEND t_aufpl_aufnr.
      ENDIF.
    check afpo_x = cloi_x.
    GET ioitem.
    BEGIN OF INSERTION DS001
    Check whether the process order has been changed since the last
    run of the program
    CLEAR F_CONTINUE.
    if the CHANGED date is greater than the last run or initial
    IF IOHEADER-AEDAT  GT F_OLD_DATE OR
           ( ioheader-aedat  is initial and
             ioheader-aezeit is initial ).
    if the CHANGED date is initial check the creation date
       if ioheader-aedat is initial.
    if the creation date is greater than or equal to the date of the last
    run, if it is equal the creation time must be later or equal to the
    start time of the last run
         IF IOHEADER-ERDAT GT F_OLD_DATE OR
            ( IOHEADER-ERDAT EQ F_OLD_DATE AND
              IOHEADER-ERFZEIT GE F_OLD_TIME ).
           f_continue = 'X'.
         endif.
       else.
         f_continue = 'X'.
       endif.
    if the CHANGED date is not initial check it against the last run
    ELSEIF IOHEADER-AEDAT  EQ F_OLD_DATE AND
            IOHEADER-AEZEIT GE F_OLD_TIME.
       f_continue ='X'.
    endif.
    Aenderung 295/99  Selektions-Aenderung vom 26. August 99
    Wenn Auftrag bereits techn. abgeschlossen ist, so darf kein IDOC
    erzeugt werden, wenn Auftrag zum löschen vorgemerkt wird.
    CONCATENATE 'OR' IOHEADER-AUFNR INTO F_OBJNR.
    SELECT SINGLE * FROM JEST
                     WHERE OBJNR = F_OBJNR
                     AND   STAT  = 'I0045'.
    IF JEST-INACT EQ SPACE AND SY-SUBRC EQ 0.
       SELECT * FROM JCDS WHERE OBJNR EQ F_OBJNR AND
                                STAT  EQ 'I0045' AND
                                INACT EQ SPACE.
    letzte Aenderung des Status TABG wird geprueft
       ENDSELECT.
      IF ( F_OLD_DATE GT JCDS-UDATE OR                         " Beg JB_02
          ( F_OLD_DATE EQ JCDS-UDATE AND
           F_OLD_TIME GT JCDS-UTIME ) ) AND                    " End JB_02
          SY-SUBRC EQ 0.
         CLEAR F_CONTINUE.
       ENDIF.
    ENDIF.
    Ende 295/99
    check f_continue eq 'X'.
    END OF INSERTION DS001
      IF afpo_x = cloi_x.
        MOVE-CORRESPONDING ioitem TO t_afpo.
        APPEND t_afpo.
      ENDIF.
    Put matnr and ltrmi in a help structure, which later goes to t_afpo
      IF ioitem-posnr = '0001'.
        MOVE-CORRESPONDING ioitem TO help_afpo.
        APPEND help_afpo.
    put PSP element (internal key) into order header. Unique for positions
        IF t_afko-pspel IS INITIAL.
          t_afko-pspel = ioitem-projn.
        ENDIF.
      ENDIF.
      CHECK affl_x = cloi_x.
    GET iosequen.
      CLEAR t_afvo. REFRESH t_afvo.
      MOVE-CORRESPONDING iosequen TO t_affl.
    GET iosequen LATE.
      t_affl-t_afvo = t_afvo[].
      APPEND t_affl.
      CHECK afvo_x = cloi_x.
    GET iooper.
      CLEAR t_kbed. REFRESH t_kbed.
      CLEAR t_afuv. REFRESH t_afuv.
      CLEAR t_resb. REFRESH t_resb.
      MOVE-CORRESPONDING iooper TO t_afvo.
      "Temporary storing of operation information if for a phase
      "the corresponding operation has is needed
      MOVE-CORRESPONDING iooper TO t_aufpl_aplzl_vornr.
      APPEND t_aufpl_aplzl_vornr.
    check, if selection profile (if exists) for the operation is ok
      IF NOT ord_opr_selid IS INITIAL.
        CALL FUNCTION 'STATUS_CHECK_BY_SELSCHEM'
             EXPORTING
                  objnr          = iooper-objnr
                  selid          = ord_opr_selid
             IMPORTING
                  fullfill       = status_ok
             EXCEPTIONS
                  no_stat_tab    = 1
                  no_stat_scheme = 2
                  OTHERS         = 3.
        IF sy-subrc <> 0.
          status_ok = cloi_x.
        ENDIF.
      ELSE.
        status_ok = cloi_x.
      ENDIF.
    check if control key (STEUS) should not be selected.
      control_key_ok = cloi_x.
      IF no_entry_for_logsys IS INITIAL.
        READ TABLE t_steus WITH KEY
             steus = iooper-steus BINARY SEARCH.
        IF sy-subrc <> 0.
          CLEAR control_key_ok.
        ENDIF.
      ENDIF.
      CHECK NOT status_ok IS INITIAL.
      CHECK NOT control_key_ok IS INITIAL.
    GET iooper LATE.
      t_afvo-t_kbed = t_kbed[].
      t_afvo-t_afuv = t_afuv[].
      t_afvo-t_resb = t_resb[].
      APPEND t_afvo.
      IF jstv_x = cloi_x.
        t_objnr-objnr = iooper-objnr.
        APPEND t_objnr.
      ENDIF.
      CHECK kbed_x = cloi_x.
    GET ioopcap.
      MOVE-CORRESPONDING ioopcap TO t_kbed.
      APPEND t_kbed.
      CHECK resb_x = cloi_x.
    GET ioopcomp.
    do not transfer RESB entries with deletion flag
      CHECK ioopcomp-xloek IS INITIAL.
      MOVE-CORRESPONDING ioopcomp TO t_resb.
      APPEND t_resb.
      CHECK afuv_x = cloi_x.
    GET iosoper.
      CLEAR t_kbeu. REFRESH t_kbeu.
      MOVE-CORRESPONDING iosoper TO t_afuv.
    check if control key (STEUS) should not be selected.
      control_key_ok = cloi_x.
      IF no_entry_for_logsys IS INITIAL.
        READ TABLE t_steus WITH KEY
             steus = iooper-steus BINARY SEARCH.
        IF sy-subrc <> 0.
          CLEAR control_key_ok.
        ENDIF.
      ENDIF.
      CHECK NOT control_key_ok IS INITIAL.
    GET iosoper LATE.
      t_afuv-t_kbeu = t_kbeu[].
      APPEND t_afuv.
      IF jstv_x = cloi_x.
        t_objnr-objnr = iosoper-objnr.
        APPEND t_objnr.
      ENDIF.
      CHECK kbeu_x = cloi_x.
    GET iosocap.
      MOVE-CORRESPONDING iosocap TO t_kbeu.
      APPEND t_kbeu.
    *&   Event END-OF-SELECTION
    END-OF-SELECTION.
    *MOD-006
      DATA: itab_matnr TYPE zzzz_xref_data OCCURS 0.
      DATA: l_wa_matnr TYPE zzzz_xref_data.
      DATA: l_wa_matnr_value TYPE zzzz_xref_data-z_in_value.
      DATA: l_wa_afko TYPE  cloi_afko_struct.
    SELECT *
      FROM zzzz_xref_data
    APPENDING TABLE itab_matnr
    WHERE trans_id = 'ZELCUSMATLOOKUP' AND
           ( z_in_value IN s_matnr OR
             z_out_value IN s_matnr ).
    IF sy-subrc = 0.
         LOOP AT ITAB_MATNR INTO L_WA_MATNR.
           L_WA_MATNR_VALUE = L_WA_MATNR-z_OUT_VALUE.
           S_MATNR-LOW = L_WA_MATNR_VALUE.
           S_MATNR-SIGN = 'I'.
           S_MATNR-OPTION = 'EQ'.
           APPEND S_MATNR.
         ENDLOOP.
       DELETE itab_matnr WHERE NOT in_value IN s_emat.
       SORT itab_matnr BY out_value.
    ENDIF.
    CLEAR: l_wa_matnr.
    **MOD-010
    Data which is not in the material lookup table but in the T_AFKO.
      LOOP AT t_afko INTO l_wa_afko.
       READ TABLE S_MATNR WITH KEY LOW = L_WA_AFKO-MATNR BINARY SEARCH.
        READ TABLE itab_matnr INTO l_wa_matnr
            WITH KEY z_out_value = l_wa_afko-matnr BINARY SEARCH.
        IF sy-subrc NE 0.
          l_wa_afko-rgekz = 'X'.
          MODIFY t_afko FROM l_wa_afko  TRANSPORTING rgekz.
        ENDIF.
       IF NOT P_DATE IS INITIAL.
         IF T_AFKO-GSTRP < p_date OR
                 ( T_AFKO-GSTRP = p_date AND
                   T_AFKO-GSUZP > p_time ).
           L_WA_AFKO-RGEKZ = 'X'.
           MODIFY T_AFKO FROM L_WA_AFKO  TRANSPORTING RGEKZ.
         ENDIF.
       ENDIF.
      ENDLOOP.
    Delete  Data which is not in the material lookup
    table but in the T_AFKO.
    DELETE t_afko WHERE rgekz = 'X'.
    *MOD-010
    *MOD-006
    BEGIN OF INSERTION DS001
      DATA: l_wa_itab_date TYPE ty_date.
    Check whether the process order has been changed since the last
    run of the program
      CLEAR f_continue.
      IF NOT t_afko IS INITIAL.
        SELECT aufnr aedat aezeit erdat erfzeit loekz
        INTO TABLE itab_date
        FROM aufk
        FOR ALL ENTRIES IN t_afko
        WHERE aufnr = t_afko-aufnr.
        IF sy-subrc = 0.
          IF NOT p_date IS INITIAL.
            CLEAR: itab_date.
    Check whether the process order has been changed since the last
    run of the program
            LOOP AT itab_date INTO l_wa_itab_date.
    if the CHANGED date is greater than the last run or initial
              IF l_wa_itab_date-aedat GT p_date OR
                    ( l_wa_itab_date-aedat  IS INITIAL AND
                      l_wa_itab_date-aezeit IS INITIAL ).
    if the CHANGED date is initial check the creation date
                IF l_wa_itab_date-aedat IS INITIAL.
    if the creation date is greater than or equal to the date of the last
    run, if it is equal the creation time must be later or equal to the
    start time of the last run
                  IF l_wa_itab_date-erdat GT p_date OR
                     ( l_wa_itab_date-erdat EQ p_date AND
                       l_wa_itab_date-erfzeit GE p_time ).
                    f_continue = 'X'.
                  ELSE.
                    l_wa_itab_date-indicator = 'X'.
                MODIFY itab_date FROM l_wa_itab_date TRANSPORTING indicator.
                  ENDIF.
                ELSE.
                  f_continue = 'X'.
                ENDIF.
    if the CHANGED dat is not initial check it against the last run
              ELSEIF l_wa_itab_date-aedat  EQ p_date AND
                     l_wa_itab_date-aezeit GE p_time.
                f_continue ='X'.
              ELSE.
                l_wa_itab_date-indicator = 'X'.
                MODIFY itab_date FROM l_wa_itab_date TRANSPORTING indicator.
              ENDIF.
            ENDLOOP.
    *MOD-006
      ELSE.
         CLEAR: ITAB_DATE.
         LOOP AT ITAB_DATE INTO L_WA_ITAB_DATE.
    if the CHANGED date is greater than the last run or initial
           IF L_WA_ITAB_DATE-AEDAT GT P_RUNDT OR
                 ( L_WA_ITAB_DATE-aedat  is initial and
                   L_WA_ITAB_DATE-aezeit is initial ).
    if the CHANGED date is initial check the creation date
             if l_wa_itab_date-aedat is initial.
    if the creation date is greater than or equal to the date of the last
    run, if it is equal the creation time must be later or equal to the
    start time of the last run
               IF L_WA_ITAB_DATE-ERDAT GT P_RUNDT OR
                  ( L_WA_ITAB_DATE-ERDAT EQ P_RUNDT AND
                    L_WA_ITAB_DATE-ERFZEIT GE S_RUNTM-LOW OR
                    L_WA_ITAB_DATE-ERFZEIT LE S_RUNTM-HIGH ).
                 f_continue = 'X'.
               else.
                 l_wa_itab_date-indicator = 'X'.
                 MODIFY ITAB_DATE FROM L_WA_ITAB_DATE
                                   TRANSPORTING INDICATOR.
               endif.
             else.
               f_continue = 'X'.
             endif.
    if the CHANGED dat is not initial check it against the last run
           ELSEIF L_WA_ITAB_DATE-AEDAT  EQ P_RUNDT AND
                  L_WA_ITAB_DATE-AEZEIT GE S_RUNTM-LOW.
             f_continue ='X'.
           ELSE.
             l_wa_itab_date-indicator = 'X'.
             MODIFY ITAB_DATE FROM L_WA_ITAB_DATE
                                TRANSPORTING INDICATOR.
           endif.
         ENDLOOP.
    *MOD-006
          ENDIF.
        ENDIF.
      ENDIF.
    DELETE ITAB_DATE WHERE INDICATOR = 'X'.
    *MOD-006
      CLEAR: itab_date.
      IF s_rundt-high IS INITIAL AND NOT s_rundt IS INITIAL.
        s_rundt-high = sy-datum.
      ENDIF.
      LOOP AT itab_date INTO l_wa_itab_date.
        IF NOT s_rundt IS INITIAL.
    if the CHANGED date is greater than the last run or initial
          IF    ( l_wa_itab_date-aedat  IS INITIAL AND
                  l_wa_itab_date-aezeit IS INITIAL ).
    if the CHANGED date is initial check the creation date
            IF l_wa_itab_date-aedat IS INITIAL.
    if the creation date is greater than or equal to the date of the last
    run, if it is equal the creation time must be later or equal to the
    start time of the last run
              IF ( l_wa_itab_date-erdat GT s_rundt-low AND
                 l_wa_itab_date-erfzeit GT s_runtm-low ) AND
                 ( l_wa_itab_date-erdat LT s_rundt-high AND
                 l_wa_itab_date-erfzeit LT s_runtm-high ).
                f_continue = 'X'.
              ELSE.
                l_wa_itab_date-indicator = 'X'.
                MODIFY itab_date FROM l_wa_itab_date
                                  TRANSPORTING indicator.
              ENDIF.
            ELSE.
              f_continue = 'X'.
            ENDIF.
    if the CHANGED dat is not initial check it against the last run
          ELSEIF ( l_wa_itab_date-aedat  GE s_rundt-low AND
                  l_wa_itab_date-aezeit  GE s_runtm-low ) AND
                 ( l_wa_itab_date-aedat  LE s_rundt-high AND
                 l_wa_itab_date-aezeit LE s_runtm-high ).
            f_continue ='X'.
          ELSE.
            l_wa_itab_date-indicator = 'X'.
            MODIFY itab_date FROM l_wa_itab_date
                               TRANSPORTING indicator.
          ENDIF.
        ENDIF.
      ENDLOOP.
    DELETE itab_date WHERE indicator = 'X'.
    *MOD-006
    **MOD-006
    LOOP AT t_afko INTO l_wa_afko.
       READ TABLE itab_date INTO l_wa_itab_date
                WITH KEY aufnr = l_wa_afko-aufnr BINARY SEARCH.
       IF sy-subrc NE 0.
         l_wa_afko-rgekz = 'X'.
         MODIFY t_afko FROM l_wa_afko  TRANSPORTING rgekz.
       ENDIF.
    ENDLOOP.
    DELETE t_afko WHERE rgekz = 'X'.
    **MOD-006
    -> initialize logical data base to reduce memory consumption
      PERFORM ldb_process_init(sapdbioc)
        CHANGING
          lv_subrc.
    --> add information to the order structure that is not
        selected via logical database:
        - if AFVO-entry is a phase (phflg) --> fill field for
          corresponding operation number (PVZNR)
          The internal node number (aplzl) of the corresponding operation
          is in field PVZKN of the phase
        - relationship information: E1AFABL
          especially: select external numbers for the used
          internal numbers in the table AFAB
        - status information of the order header: E1JSTKL
        - status information of the operation: E1JSTVL
    --> Put matnr and ltrmi in the table t_afko
      SORT t_afko BY aufnr.
      LOOP AT help_afpo.
        READ TABLE t_afko WITH KEY aufnr = help_afpo-aufnr
          ASSIGNING -gltri = help_afpo-ltrmi.
        ENDIF.
      ENDLOOP.
    --> Select entries for order and operation status
      IF NOT t_objnr[] IS INITIAL.
        SELECT objnr stat FROM jest INTO TABLE t_jest2
          FOR ALL ENTRIES IN t_objnr
          WHERE objnr = t_objnr-objnr
          AND   inact <> 'X'.
      ENDIF.
    --> Select entries for relationships from afab for all orders
        into table t_afab_tmp
      SORT t_aufpl_aplzl_vornr BY aufpl aplzl.
      IF afab_x = cloi_x AND NOT t_aufpl_aufnr[] IS INITIAL.
      -> select afab data
        SELECT * FROM afab INTO TABLE t_afab_tmp
          FOR ALL ENTRIES IN t_aufpl_aufnr
          WHERE aufpl_vor = t_aufpl_aufnr-aufpl.
        SELECT * FROM afab APPENDING TABLE t_afab_tmp
          FOR ALL ENTRIES IN t_aufpl_aufnr
          WHERE aufpl_nch = t_aufpl_aufnr-aufpl.
        SORT t_afab_tmp
          BY aufpl_vor aplzl_vor aufpl_nch aplzl_nch aobar mimax.
        DELETE ADJACENT DUPLICATES FROM t_afab_tmp
          COMPARING aufpl_vor aplzl_vor aufpl_nch aplzl_nch aobar mimax.
      -> read external order numbers out of data base
        CLEAR t_aufpl. REFRESH t_aufpl.
        LOOP AT t_afab_tmp ASSIGNING -aufpl_nch.
          COLLECT t_aufpl.
        ENDLOOP.
        CLEAR t_aufpl_aufnr. REFRESH t_aufpl_aufnr.
        IF NOT t_aufpl[] IS INITIAL.
          SELECT aufpl aufnr FROM afko INTO TABLE t_aufpl_aufnr
            FOR ALL ENTRIES IN t_aufpl
            WHERE aufpl = t_aufpl-aufpl.
          SORT t_aufpl_aufnr BY aufpl.
        ENDIF.
      -> add order numbers to afab data
        LOOP AT t_afab_tmp ASSIGNING -aufnr_nch = t_aufpl_aufnr-aufnr.
          ENDIF.
        ENDLOOP.
      -> read operation numbers out of data base
        CLEAR t_aufpl_aplzl. REFRESH t_aufpl_aplzl.
        LOOP AT t_afab_tmp ASSIGNING -aplzl_nch.
          COLLECT t_aufpl_aplzl.
        ENDLOOP.
        IF NOT t_aufpl_aplzl[] IS INITIAL.
          SELECT aufpl aplzl vornr FROM afvc
            APPENDING TABLE t_aufpl_aplzl_vornr
            FOR ALL ENTRIES IN t_aufpl_aplzl
            WHERE aufpl = t_aufpl_aplzl-aufpl
              AND aplzl = t_aufpl_aplzl-aplzl.
          SORT t_aufpl_aplzl_vornr BY aufpl aplzl.
        ENDIF.
      -> add operation numbers to afab data
        LOOP AT t_afab_tmp ASSIGNING -vornr_nch = t_aufpl_aplzl_vornr-vornr.
          ENDIF.
        ENDLOOP.
      ENDIF.                               "afab_x
    --> fill AFAB (relationship information) and status information
      SORT t_aufpl_aufnr BY aufnr.
      LOOP AT t_afko ASSIGNING .
      -> fill order head status information
        IF jstk_x = cloi_x.
          CLEAR t_jstk. REFRESH t_jstk.
          LOOP AT t_jest2 INTO wa_tjest2 WHERE objnr = -t_jstk = t_jstk[].
        ENDIF.
      -> fill afab information
        IF afab_x = cloi_x.
          CLEAR t_aufpl_aufnr.
          READ TABLE t_aufpl_aufnr WITH KEY
            aufnr = -t_afab = t_afab[].
        ENDIF.
      -> fill operation and suboperation status information
        IF jstv_x = cloi_x OR afvo_x = cloi_x.
          LOOP AT .
            -> read status information of suboperation
              IF jstu_x = cloi_x.
                LOOP AT -t_jstu = t_jstu[].
                ENDLOOP.
              ENDIF.
            -> read status information of operation
              IF jstv_x = cloi_x.
                CLEAR t_jstv. REFRESH t_jstv.
                LOOP AT t_jest2 INTO wa_tjest2 WHERE objnr = -t_jstv = t_jstv[].
              ENDIF.
            -> Read operation for a phase
              IF NOT -pvznr = t_aufpl_aplzl_vornr-vornr.
                ENDIF.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
        ENDIF.
      -> collect order numbers
        CLEAR wa_aufnrdone.
        wa_aufnrdone-low = -aufnr.
        APPEND wa_aufnrdone TO lt_aufnrdone.
      ENDLOOP.
    -> append collected order numbers to global table
      APPEND LINES OF lt_aufnrdone TO gt_aufnrdone.
      EXPORT gt_aufnrdone TO MEMORY ID 'LOIAUFNRTAB'.
    -> free large tables
      CLEAR t_jest2. REFRESH t_jest2.
      CLEAR t_afab_tmp. REFRESH t_afab_tmp.
      CLEAR t_aufpl. REFRESH t_aufpl.
      CLEAR t_aufpl_aufnr. REFRESH t_aufpl_aufnr.
      CLEAR t_aufpl_aplzl. REFRESH t_aufpl_aplzl.
      CLEAR t_aufpl_aplzl_vornr. REFRESH t_aufpl_aplzl_vornr.
    -> create idocs
      CALL FUNCTION 'CLOI_MASTERIDOC_CREATE_LOIPRO'
           EXPORTING
                opt_sys      = opt_sys
                message_type = mestyp
           TABLES
                order_data   = t_afko
           EXCEPTIONS
                OTHERS       = 1.
    -> export already selected order numbers via ranges tab to memory
      EXPORT t_aufnr_range_done TO MEMORY ID 'LOI002'.
    **MOD-006
    IMPORT created_masteridocs_pro FROM MEMORY ID 'YLOI001'.
    ycloidownlprot-end_date       = sy-datum.
    ycloidownlprot-end_time       = sy-uzeit.
    ycloidownlprot-idocs_selected = created_masteridocs_pro.
    ycloidownlprot-in_progress    = cloi_false.
    insert or update entry (dependant if entry already exists)
    MODIFY ycloidownlprot.
    COMMIT WORK.
    MESSAGE i967(z001) WITH created_masteridocs_pro.
    **MOD-006
    Update last run date and time
      IF p_update = 'X'.
        PERFORM update_last_run.
      ELSE.
      MESSAGE s000 WITH text-022.
        "Last Run Date and Last Run Time not updated
        LEAVE LIST-PROCESSING.
      ENDIF.
      INCLUDE rcordf01.
    *&      Form  validate_last_run_date_time
          text
    -->  p1        text
    <--  p2        text
    *FORM validate_last_run_date_time.
    IF p_date IS INITIAL OR
        p_time IS INITIAL.
       IF sy-batch IS INITIAL.
         MESSAGE s000 WITH text-017.
         "Last Run date & Last Run Time can not be blank
         LEAVE LIST-PROCESSING.
       ELSE.
         MESSAGE e000 WITH text-017.
         "Last Run date & Last Run Time can not be blank
       ENDIF.
    ENDIF.
    *ENDFORM.                    " validate_last_run_date_time
    *&      Form  update_last_run
          text
    -->  p1        text
    <--  p2        text
    FORM update_last_run.
      CONSTANTS:
            l_c_name    TYPE rvari_vnam  VALUE 'Z_PROC_DATE',
            l_c_name1   TYPE rvari_vnam  VALUE 'Z_PROC_TIME',
            l_c_type    TYPE rsscr_kind  VALUE 'P',
            l_c_numb    TYPE tvarv_numb  VALUE '0000'.
    Update last run date
      UPDATE tvarv SET low  = sy-datum
                 WHERE name = l_c_name AND
                       type = l_c_type AND
                       numb = l_c_numb.
      IF sy-subrc = 0.
        COMMIT WORK.
      ELSE.
        ROLLBACK WORK.
        g_run_date = text-015. "#EC
        "Updation of TVARV table failed for ZLAST_RUN_DATE. Update manually
      ENDIF.
    Update last run time
      UPDATE tvarv SET low  = sy-uzeit
                 WHERE name = l_c_name1 AND
                       type = l_c_type AND
                       numb = l_c_numb.
      IF sy-subrc = 0.
        COMMIT WORK.
      ELSE.
        ROLLBACK WORK.
        g_run_time = text-016. "#EC
        "Updation of TVARV table failed for ZLAST_RUN_TIME. Update manually
      ENDIF.
    ENDFORM.                    " update_last_run

  • High Buffer Busy Wait due to Concurrent INSERTS

    Hi All,
    One of my OLTP database is running on 11.1.0.7 (11.1.0.7.0 - 64bit Production) with RHEL 5.4.
    On frequent basis, i am observing 'BUFFER BUSY WAITS' and last time i tried to capture some dictionary information to dig the waits.
    1. Session Watis :
              Oracle                                                  Sec                                     Hash
    Sid,Serial User     OS User  Svr-Pgm    Wait Event      State-Seq   Wt Module                  Cmnd       Value          P1          P2   P3
    633,40830 OLTP_USE fateadm  21646-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    647, 1761 OLTP_USE fateadm  22715-orac buffer busy wai Wtng-3837    0 ORDERS             ISRT  3932487748         384     1863905    1
    872, 5001 OLTP_USE fateadm  21836-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    702, 1353 OLTP_USE fateadm  21984-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    337,10307 OLTP_USE fateadm  21173-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    751,43016 OLTP_USE fateadm  21619-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    820,17959 OLTP_USE fateadm  21648-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863905    1
    287,63359 OLTP_USE fateadm  27053-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863905    1
    629, 1653 OLTP_USE fateadm  22468-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863905    1
    788,14160 OLTP_USE fateadm  22421-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863905    1
    615, 4580 OLTP_USE fateadm  21185-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863905    1
    525,46068 OLTP_USE fateadm  27043-orac buffer busy wai Wtng-9034    1 ORDERS             ISRT  3932487748         384     1863905    1
    919,23243 OLTP_USE fateadm  21428-orac buffer busy wai Wtng-6340    1 ORDERS             ISRT  3932487748         384     1863906    1
    610,34557 OLTP_USE fateadm  21679-orac buffer busy wai Wtng-6422    1 ORDERS             ISRT  3932487748         384     1863906    1
    803, 1583 OLTP_USE fateadm  21580-orac buffer busy wai Wtng-6656    1 ORDERS             ISRT  3932487748         384     1863906    1
    781, 1523 OLTP_USE fateadm  21781-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863906    1
    369,11005 OLTP_USE fateadm  21718-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863906    1
    823,35800 OLTP_USE fateadm  21148-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863906    1
    817, 1537 OLTP_USE fateadm  22505-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863906    1
    579,54959 OLTP_USE fateadm  22517-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863906    1
    591,33597 OLTP_USE fateadm  27027-orac buffer busy wai Wtng-9999    1 ORDERS             ISRT  3932487748         384     1863906    1
    481, 3031 OLTP_USE fateadm  21191-orac buffer busy wai Wtng-3502    1 ORDERS             ISRT  3932487748         384     1863906    1
    473,24985 OLTP_USE fateadm  22629-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863906    1
    868, 3984 OLTP_USE fateadm  27191-orac buffer busy wai Wtng-9999    0 ORDERS             ISRT  3932487748         384     1863906    1
    select owner,segment_name,segment_type from dba_extents where    file_id = 384 and   1863905 between block_id and block_id + blocks -1;
    OWNER                          SEGMENT_NAME                                                                      SEGMENT_TYPE
    ORDER                          ORDER_DETAILS                                                                      TABLE
    select TABLE_NAME,PARTITIONED,ini_trans ,degree,compression,FREELISTS from dba_TABLES WHERE TABLE_NAME='ORDER_DETAILS';
    TABLE_NAME                     PAR  INI_TRANS DEGREE                         COMPRESS  FREELISTS
    ORDER_DETAILS                   NO           1          1                     ENABLED           1
    Tablespace is not ASSM managed !
      select
       object_name,
       statistic_name,
       value
    from
       V$SEGMENT_STATISTICS
    where
       object_name = 'ORDER_DETAILS';
    OBJECT_NAME              STATISTIC_NAME                                                        VALUE
    ORDER_DETAILS             logical reads                                                     487741104
    ORDER_DETAILS             buffer busy waits                                                   4715174
    ORDER_DETAILS             db block changes                                                  200858896
    ORDER_DETAILS             physical reads                                                    143642724
    ORDER_DETAILS             physical writes                                                    20581330
    ORDER_DETAILS             physical reads direct                                              55239903
    ORDER_DETAILS             physical writes direct                                             19500551
    ORDER_DETAILS             space allocated                                                  1.6603E+11
    ORDER_DETAILS             segment scans                                                          9727
    ORDER_DETAILS table is ~ 153 GB non-partitioned table.
    It seems its not a READ BY OTHER SESSIONS wait but BUFFER BUSY due to write-wirte contention inside same block. I have never observed Cache Buffer Chain/ ITL-Wait/ High wait time on dbfile sequential/scattered reads.Table contains one PK (composite index on 3 columns) which seems to be highly fragmented.This non partitioned global Index has 3182037735 rows and blevel is 4.
    BHAVIK_DBA.FATE1NA>select index_name,status,num_rows,blevel,pct_free,ini_trans,clustering_factor from dba_indexes where index_name='IDX_ORDERS';
    INDEX_NAME                     STATUS     NUM_ROWS     BLEVEL   PCT_FREE  INI_TRANS CLUSTERING_FACTOR
    IDX_ORDERS                      VALID    3182037735          4          2          2        2529462377
    1 row selected.
    One of the index column value is being populated by sequence. (Monotonically increasing value)
    SEGMENT_NAME                                                                              MB
    IDX_ORDERS                                                             170590.438
    Index size is greater than table size !Tuning goal here is to reduce buffer busy waits and thus commit latencies.
    I think, i need to increase FREELISTS and PCT_FREE to address this issue, but not much confident whether it is going to solve the issue or not?
    Can i ask for any help here ?

    Hi Johnathan;
    Many thanks for your detailed write-up. I was expecting you !
    Your post here gave lot of information and wisdom that made me think last couple of hrs that is the reason for the delay in reply.
    I did visited your index explosion posts couple of times and that scenario only gave me insight that concurrent DML (INSERT) is cause of index fragmentation in my case.
    Let me also pick the opportunity to ask you to shed more light on some of the information you have highlighted.
    if you can work out the number of concurrent inserts that are really likely to happen at any one instant then a value of freelists that in the range of
    concurrency/4 to concurrency/2 is probably appropriate.May i ask you how did you derive this formula ? I dont want to miss learning opportunity here !
    Note - with multiple freelists, you may find that you now get buffer busy waits on the segment header block.I did not quite get this point ? Can you shed more light please? What piece in segment header block is going to result contention(BBW on SEGMENT HEADER) on all concurrent inserts ?
    The solution to this is to increase the number of freelist groups (making sure that
    freelists and freelist groups have no common factors).My prod db NON-RAC environment. Can i use FREELIST GROUPS here ? My little knowledge did not get, What "common factors" you are referring here ?
    The reads could be related to leaf block splits, but there are several possible scenarios that could lead to that pattern of activity - so the next step is to find out which blocks are being
    read. Capture a sample of the waits, then query dba_extents for the extent_id, file_id, and block_id (don't run that awful query with the "block_id + blocks" predicate) and cross-check the
    list of blocks to see if they are typically the first couple of blocks of an extent or randomly scattered throughout extents. If the former the problem is probably related to ASSM, if the
    latter it may be related to failed probes on index leaf block reuse (i.e. after large scale deletes).I have 10046 trace file with me (giving you some sample below) that can give some information. However, since the issue was critical, i killed the insert process and rebuilt both the indexes. Since, index is rebuilt, i am not able to find any information in dba_extents.
    select SEGMENT_NAME,SEGMENT_TYPE,EXTENT_ID from dba_extents where file_id=42 and block_id=1109331;
    no rows selected
    select SEGMENT_NAME,SEGMENT_TYPE,EXTENT_ID from dba_extents where file_id=42 and block_id=1109395 ;
    no rows selected
    select SEGMENT_NAME,SEGMENT_TYPE,EXTENT_ID from dba_extents where file_id=42 and block_id=1109459;
    no rows selected
    select SEGMENT_NAME,SEGMENT_TYPE,EXTENT_ID from dba_extents where file_id=10 and block_id=1107475;
    no rows selected
    select SEGMENT_NAME,SEGMENT_TYPE,EXTENT_ID from dba_extents where file_id=10 and block_id=1107539;
    no rows selected
    select object_name,object_Type from dba_objects where object_id=17599;
    no rows selected
    WAIT #4: nam='db file sequential read' ela= 49 file#=42 block#=1109331 blocks=1 obj#=17599 tim=1245687162307379
    WAIT #4: nam='db file sequential read' ela= 59 file#=42 block#=1109395 blocks=1 obj#=17599 tim=1245687162307462
    WAIT #4: nam='db file sequential read' ela= 51 file#=42 block#=1109459 blocks=1 obj#=17599 tim=1245687162307538
    WAIT #4: nam='db file sequential read' ela= 49 file#=10 block#=1107475 blocks=1 obj#=17599 tim=1245687162307612
    WAIT #4: nam='db file sequential read' ela= 49 file#=10 block#=1107539 blocks=1 obj#=17599 tim=1245687162307684
    WAIT #4: nam='db file sequential read' ela= 198 file#=10 block#=1107603 blocks=1 obj#=17599 tim=1245687162307905
    WAIT #4: nam='db file sequential read' ela= 88 file#=10 block#=1107667 blocks=1 obj#=17599 tim=1245687162308016
    WAIT #4: nam='db file sequential read' ela= 51 file#=10 block#=1107731 blocks=1 obj#=17599 tim=1245687162308092
    WAIT #4: nam='db file sequential read' ela= 49 file#=10 block#=1107795 blocks=1 obj#=17599 tim=1245687162308166
    WAIT #4: nam='db file sequential read' ela= 49 file#=10 block#=1107859 blocks=1 obj#=17599 tim=1245687162308240
    WAIT #4: nam='db file sequential read' ela= 52 file#=10 block#=1107923 blocks=1 obj#=17599 tim=1245687162308314
    WAIT #4: nam='db file sequential read' ela= 57 file#=42 block#=1109012 blocks=1 obj#=17599 tim=1245687162308395
    WAIT #4: nam='db file sequential read' ela= 52 file#=42 block#=1109076 blocks=1 obj#=17599 tim=1245687162308470
    WAIT #4: nam='db file sequential read' ela= 98 file#=42 block#=1109140 blocks=1 obj#=17599 tim=1245687162308594
    WAIT #4: nam='db file sequential read' ela= 67 file#=42 block#=1109204 blocks=1 obj#=17599 tim=1245687162308686
    WAIT #4: nam='db file sequential read' ela= 53 file#=42 block#=1109268 blocks=1 obj#=17599 tim=1245687162308762
    WAIT #4: nam='db file sequential read' ela= 54 file#=42 block#=1109332 blocks=1 obj#=17599 tim=1245687162308841
    WAIT #4: nam='db file sequential read' ela= 55 file#=42 block#=1109396 blocks=1 obj#=17599 tim=1245687162308920
    WAIT #4: nam='db file sequential read' ela= 54 file#=42 block#=1109460 blocks=1 obj#=17599 tim=1245687162308999
    WAIT #4: nam='db file sequential read' ela= 52 file#=10 block#=1107476 blocks=1 obj#=17599 tim=1245687162309074
    WAIT #4: nam='db file sequential read' ela= 89 file#=10 block#=1107540 blocks=1 obj#=17599 tim=1245687162309187
    WAIT #4: nam='db file sequential read' ela= 407 file#=10 block#=1107604 blocks=1 obj#=17599 tim=1245687162309618TKPROF for above trace
    INSERT into
                     order_rev
                     (aggregated_revenue_id,
                      legal_entity_id,
                      gl_product_group,
                      revenue_category,
                      warehouse_id,
                      tax_region,
                      gl_product_subgroup,
                      total_shipments,
                      total_units_shipped,
                      aggregated_revenue_amount,
                      aggregated_tax_amount,
                      base_currency_code,
                      exchange_rate,
                      accounting_date,
                      inventory_owner_type_id,
                      fin_commission_structure_id,
                      seller_of_record_vendor_id,
                      organizational_unit_id,
                      merchant_id,
                      last_updated_date,
                      revenue_owner_type_id,
                      sales_channel,
                      location)
                     VALUES
                     (order_rev.nextval,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10,:p11,:p12,to_date(:p13, 'dd-MON-yyyy'),:p14,:p15,:p16,:p17,:p18,sysdate,:p19,:p20,:p21)
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        0      0.00       0.00          0          0          0           0
    Execute    613      5.50      40.32      96672     247585     306916         613
    Fetch        0      0.00       0.00          0          0          0           0
    total      613      5.50      40.32      96672     247585     306916         613
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 446
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                    164224        0.04         62.33
      SQL*Net message to client                     613        0.00          0.00
      SQL*Net message from client                   613        0.03          0.90
      latch: cache buffers chains                     8        0.00          0.00
      latch: object queue header operation            2        0.00          0.00Is there any other way to find out culprit amongst the two you have listed (ASSM / failed probes on index leaf block reuse ) ?

  • Problems while uploading Task List - Service Pack with LSMW

    We are trying to upload General Maintenance Task List using LSMW. We are using Standard Batch/Direct Input method with Object 0490.
    We need to upload task list header, operations, maintenance pack, component and service pack for operations.
    We have created separate files containing data for different structures and they are linked using Group, group counter and operation number according below
    Header
    |----Operations
    .......... |----Long Text
    ..........|----Maintenance Pack
    ..........|----Components
    ..........|----Service Pack
    We have multiple operations per task list and multiple services per operation. The service pack is required only for a specific control key - PM03.  As per the configuration this screen (PROGRAM - SPLMLSP, Screen Number - 0200) is accessible only when the value PM03 is entered in the operation. We are able to upload all other details except service pack details. We have tried using structure IBIPBDCD for the same.
    While uploading the task list in foreground, when control key is entered as PM03 in an operation, service pack screen is displayed with error u201CNo batch input data for screen SAPLMLSP 0200u201D. The data provided in structure IBIPBDCD does not get processed at this time.
    On exiting the screen using back button, the data in IBIPBDCD structure is passed incorrectly to fields in screen 3400 (SAPLCPDI)
    Are we doing something incorrect? Is there a way to use this standard functionality to upload task lists with service packs?
    Thanks
    Edited by: jvalitp on Dec 15, 2011 12:46 PM

    Hi,
    When loading the tasklists you need to define a source structure as per the IBIP structure. You have different levels for example level 1 - header then below that level 2 - Operations, Header Long text then below that you have level 3 - Operation Long text, Operation Package assignments, operation component allocation.
    For each of these levels you need an identifier that links then together. In your source file specify identifier 1 for header, Identifier 1 and Identifier 2 for operations, identifier 1 identifier 2 and identifier 3 for packages. This way the system can create the correct structure when it reads the data from the text file.
    The identifiers are numeric and will dissapear once the files are loaded. specify then in the source structure as 2 characters and remember to set the xcel file up to have a 2 character field.
    For the header file each line will be a new identifier 1,2,3,etc.
    The operations are assigned to the header and have 2 identifiers. The first corresponds to the header identifier the next is a sequential number stating at 1 and incrementing for each line e.g Header 1 op 1, header 1 op 2, header 2 op 3, header 2 op 4, header 2 op 5 (this would be 2 header records. The first with 2 operations on it the second with 3 operations)
    The package is assigned to the operation and as such needs to have a third identifier. Header (identifier 1), Operation (identifier 2), Package (identifier 3) Example Header 1 op 1 pack 1, header 1 op 2 pack 2, header 2 op 3 pack 3, header 2 op 4 pack 4, header 2 op 5 pack 5
    I have a loading file for each of the items i.e. Header file, Operation file, maintenance package file. This is then assigned to the respective source structure.
    Regards,
    ravi

  • Serial table scan with direct path read compared to db file scattered read

    Hi,
    The environment
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit
    8K block size
    db_file_multiblock_read_count is 128
    show sga
    Total System Global Area 1.6702E+10 bytes
    Fixed Size                  2219952 bytes
    Variable Size            7918846032 bytes
    Database Buffers         8724152320 bytes
    Redo Buffers               57090048 bytes
    16GB of SGA with 8GB of db buffer cache.
    -- database is built on Solid State Disks
    -- SQL trace and wait events
    DBMS_MONITOR.SESSION_TRACE_ENABLE ( waits=>true )
    -- The underlying table is called tdash. It has 1.7 Million rows based on data in all_objects. NO index
    TABLE_NAME                             Rows Table Size/MB      Used/MB    Free/MB
    TDASH                             1,729,204        15,242       15,186         56
    TABLE_NAME                     Allocated blocks Empty blocks Average space/KB Free list blocks
    TDASH                                 1,943,823        7,153              805                0
    Objectives
    To show that when serial scans are performed on database built on Solid State Disks (SSD) compared to Magnetic disks (HDD), the performance gain is far less compared to random reads with index scans on SSD compared to HDD
    Approach
    We want to read the first 100 rows of tdash table randomly into buffer, taking account of wait events and wait times generated. The idea is that on SSD the wait times will be better compared to HDD but not that much given the serial nature of table scans.
    The code used
    ALTER SESSION SET TRACEFILE_IDENTIFIER = 'test_with_tdash_ssdtester_noindex';
    DECLARE
            type array is table of tdash%ROWTYPE index by binary_integer;
            l_data array;
            l_rec tdash%rowtype;
    BEGIN
            SELECT
                    a.*
                    ,RPAD('*',4000,'*') AS PADDING1
                    ,RPAD('*',4000,'*') AS PADDING2
            BULK COLLECT INTO
            l_data
            FROM ALL_OBJECTS a;
            DBMS_MONITOR.SESSION_TRACE_ENABLE ( waits=>true );
            FOR rs IN 1 .. 100
            LOOP
                    BEGIN
                            SELECT * INTO l_rec FROM tdash WHERE object_id = l_data(rs).object_id;
                    EXCEPTION
                      WHEN NO_DATA_FOUND THEN NULL;
                    END;
            END LOOP;
    END;
    /Server is rebooted prior to any tests
    Whern run as default, the optimizer (although some attribute this to the execution engine) chooses direct path read into PGA in preference to db file scattered read.
    With this choice it takes 6,520 seconds to complete the query. The results are shown below
    SQL ID: 78kxqdhk1ubvq
    Plan Hash: 1148949653
    SELECT *
    FROM
    TDASH WHERE OBJECT_ID = :B1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.00          2         47          0           0
    Execute    100      0.00       0.00          1         51          0           0
    Fetch      100     10.88    6519.89  194142802  194831012          0         100
    total      201     10.90    6519.90  194142805  194831110          0         100
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)   (recursive depth: 1)
    Rows     Row Source Operation
          1  TABLE ACCESS FULL TDASH (cr=1948310 pr=1941430 pw=0 time=0 us cost=526908 size=8091 card=1)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   TABLE ACCESS   MODE: ANALYZED (FULL) OF 'TDASH' (TABLE)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      Disk file operations I/O                        3        0.00          0.00
      db file sequential read                         2        0.00          0.00
      direct path read                          1517504        0.05       6199.93
      asynch descriptor resize                      196        0.00          0.00
    DECLARE
            type array is table of tdash%ROWTYPE index by binary_integer;
            l_data array;
            l_rec tdash%rowtype;
    BEGIN
            SELECT
                    a.*
                    ,RPAD('*',4000,'*') AS PADDING1
                    ,RPAD('*',4000,'*') AS PADDING2
            BULK COLLECT INTO
            l_data
            FROM ALL_OBJECTS a;
            DBMS_MONITOR.SESSION_TRACE_ENABLE ( waits=>true );
            FOR rs IN 1 .. 100
            LOOP
                    BEGIN
                            SELECT * INTO l_rec FROM tdash WHERE object_id = l_data(rs).object_id;
                    EXCEPTION
                      WHEN NO_DATA_FOUND THEN NULL;
                    END;
            END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        0      0.00       0.00          0          0          0           0
    Execute      1      3.84       4.03        320      48666          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        1      3.84       4.03        320      48666          0           1
    Misses in library cache during parse: 0
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       1        0.00          0.00
      SQL*Net message from client                     1        0.00          0.00
    SQL ID: 9babjv8yq8ru3
    Plan Hash: 0
    BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       1        0.00          0.00
      SQL*Net message from client                     1        0.00          0.00
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      2      3.84       4.03        320      48666          0           2
    Fetch        0      0.00       0.00          0          0          0           0
    total        3      3.84       4.03        320      48666          0           2
    Misses in library cache during parse: 0
    Misses in library cache during execute: 1
    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
      SQL*Net message from client                     2        0.00          0.00
      log file sync                                   1        0.00          0.00
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        9      0.01       0.00          2         47          0           0
    Execute    129      0.01       0.00          1         52          2           1
    Fetch      140     10.88    6519.89  194142805  194831110          0         130
    total      278     10.91    6519.91  194142808  194831209          2         131
    Misses in library cache during parse: 9
    Misses in library cache during execute: 8
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                         5        0.00          0.00
      Disk file operations I/O                        3        0.00          0.00
      direct path read                          1517504        0.05       6199.93
      asynch descriptor resize                      196        0.00          0.00
      102  user  SQL statements in session.
       29  internal SQL statements in session.
      131  SQL statements in session.
        1  statement EXPLAINed in this session.
    Trace file: mydb_ora_16394_test_with_tdash_ssdtester_noindex.trc
    Trace file compatibility: 11.1.0.7
    Sort options: default
           1  session in tracefile.
         102  user  SQL statements in trace file.
          29  internal SQL statements in trace file.
         131  SQL statements in trace file.
          11  unique SQL statements in trace file.
           1  SQL statements EXPLAINed using schema:
               ssdtester.plan_table
                 Schema was specified.
                 Table was created.
                 Table was dropped.
    1531657  lines in trace file.
        6520  elapsed seconds in trace file.I then force the query not to use direct path read by invoking
    ALTER SESSION SET EVENTS '10949 trace name context forever, level 1'  -- No Direct path read  ;In this case the optimizer uses db file scattered read predominantly and the query takes 4,299 seconds to finish which is around 34% faster than using direct path read (default).
    The report is shown below
    SQL ID: 78kxqdhk1ubvq
    Plan Hash: 1148949653
    SELECT *
    FROM
    TDASH WHERE OBJECT_ID = :B1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          2         47          0           0
    Execute    100      0.00       0.00          2         51          0           0
    Fetch      100    143.44    4298.87  110348670  194490912          0         100
    total      201    143.45    4298.88  110348674  194491010          0         100
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)   (recursive depth: 1)
    Rows     Row Source Operation
          1  TABLE ACCESS FULL TDASH (cr=1944909 pr=1941430 pw=0 time=0 us cost=526908 size=8091 card=1)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   TABLE ACCESS   MODE: ANALYZED (FULL) OF 'TDASH' (TABLE)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      Disk file operations I/O                        3        0.00          0.00
      db file sequential read                    129759        0.01         17.50
      db file scattered read                    1218651        0.05       3770.02
      latch: object queue header operation            2        0.00          0.00
    DECLARE
            type array is table of tdash%ROWTYPE index by binary_integer;
            l_data array;
            l_rec tdash%rowtype;
    BEGIN
            SELECT
                    a.*
                    ,RPAD('*',4000,'*') AS PADDING1
                    ,RPAD('*',4000,'*') AS PADDING2
            BULK COLLECT INTO
            l_data
            FROM ALL_OBJECTS a;
            DBMS_MONITOR.SESSION_TRACE_ENABLE ( waits=>true );
            FOR rs IN 1 .. 100
            LOOP
                    BEGIN
                            SELECT * INTO l_rec FROM tdash WHERE object_id = l_data(rs).object_id;
                    EXCEPTION
                      WHEN NO_DATA_FOUND THEN NULL;
                    END;
            END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        0      0.00       0.00          0          0          0           0
    Execute      1      3.92       4.07        319      48625          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        1      3.92       4.07        319      48625          0           1
    Misses in library cache during parse: 0
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       1        0.00          0.00
      SQL*Net message from client                     1        0.00          0.00
    SQL ID: 9babjv8yq8ru3
    Plan Hash: 0
    BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 96  (SSDTESTER)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       1        0.00          0.00
      SQL*Net message from client                     1        0.00          0.00
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      2      3.92       4.07        319      48625          0           2
    Fetch        0      0.00       0.00          0          0          0           0
    total        3      3.92       4.07        319      48625          0           2
    Misses in library cache during parse: 0
    Misses in library cache during execute: 1
    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
      SQL*Net message from client                     2        0.00          0.00
      log file sync                                   1        0.00          0.00
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        9      0.01       0.00          2         47          0           0
    Execute    129      0.00       0.00          2         52          2           1
    Fetch      140    143.44    4298.87  110348674  194491010          0         130
    total      278    143.46    4298.88  110348678  194491109          2         131
    Misses in library cache during parse: 9
    Misses in library cache during execute: 8
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                    129763        0.01         17.50
      Disk file operations I/O                        3        0.00          0.00
      db file scattered read                    1218651        0.05       3770.02
      latch: object queue header operation            2        0.00          0.00
      102  user  SQL statements in session.
       29  internal SQL statements in session.
      131  SQL statements in session.
        1  statement EXPLAINed in this session.
    Trace file: mydb_ora_26796_test_with_tdash_ssdtester_noindex_NDPR.trc
    Trace file compatibility: 11.1.0.7
    Sort options: default
           1  session in tracefile.
         102  user  SQL statements in trace file.
          29  internal SQL statements in trace file.
         131  SQL statements in trace file.
          11  unique SQL statements in trace file.
           1  SQL statements EXPLAINed using schema:
               ssdtester.plan_table
                 Schema was specified.
                 Table was created.
                 Table was dropped.
    1357958  lines in trace file.
        4299  elapsed seconds in trace file.I note that there are 1,517,504 waits with direct path read with total time of nearly 6,200 seconds. In comparison with no direct path read, there are 1,218,651 db file scattered read waits with total wait time of 3,770 seconds. My understanding is that direct path read can use single or multi-block read into the PGA. However db file scattered reads do multi-block read into multiple discontinuous SGA buffers. So it is possible given the higher number of direct path waits that the optimizer cannot do multi-block reads (contigious buffers within PGA) and hence has to revert to single blocks reads which results in more calls and more waits?.
    Appreciate any advise and apologies for being long winded.
    Thanks,
    Mich

    Hi Charles,
    I am doing your tests for t1 table using my server.
    Just to clarify my environment is:
    I did the whole of this test on my server. My server has I7-980 HEX core processor with 24GB of RAM and 1 TB of HDD SATA II for test/scratch backup and archive. The operating system is RHES 5.2 64-bit installed on a 120GB OCZ Vertex 3 Series SATA III 2.5-inch Solid State Drive.
    Oracle version installed was 11g Enterprise Edition Release 11.2.0.1.0 -64bit. The binaries were created on HDD. Oracle itself was configured with 16GB of SGA, of which 7.5GB was allocated to Variable Size and 8GB to Database Buffers.
    For Oracle tablespaces including SYS, SYSTEM, SYSAUX, TEMPORARY, UNDO and redo logs, I used file systems on 240GB OCZ Vertex 3 Series SATA III 2.5-inch Solid State Drive. With 4K Random Read at 53,500 IOPS and 4K Random Write at 56,000 IOPS (manufacturer’s figures), this drive is probably one of the fastest commodity SSDs using NAND flash memory with Multi-Level Cell (MLC). Now my T1 table created as per your script and has the following rows and blocks (8k block size)
    SELECT
      NUM_ROWS,
      BLOCKS
    FROM
      USER_TABLES
    WHERE
      TABLE_NAME='T1';
      NUM_ROWS     BLOCKS
      12000000     178952which is pretty identical to yours.
    Then I run the query as brelow
    set timing on
    ALTER SESSION SET TRACEFILE_IDENTIFIER = 'test_bed_T1';
    ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';
    SELECT
            COUNT(*)
    FROM
            T1
    WHERE
            RN=1;
    which gives
      COUNT(*)
         60000
    Elapsed: 00:00:05.29
    tkprof output shows
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        2      0.02       5.28     178292     178299          0           1
    total        4      0.02       5.28     178292     178299          0           1
    Compared to yours:
    Fetch        2      0.60       4.10     178493     178498          0           1
    It appears to me that my CPU utilisation is by order of magnitude better but my elapsed time is worse!
    Now the way I see it elapsed time = CPU time + wait time. Further down I have
    Rows     Row Source Operation
          1  SORT AGGREGATE (cr=178299 pr=178292 pw=0 time=0 us)
      60000   TABLE ACCESS FULL T1 (cr=178299 pr=178292 pw=0 time=42216 us cost=48697 size=240000 card=60000)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (AGGREGATE)
      60000    TABLE ACCESS   MODE: ANALYZED (FULL) OF 'T1' (TABLE)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       3        0.00          0.00
      SQL*Net message from client                     3        0.00          0.00
      Disk file operations I/O                        3        0.00          0.00
      direct path read                             1405        0.00          4.68
    Your direct path reads are
      direct path read                             1404        0.01          3.40Which indicates to me you have faster disks compared to mine, whereas it sounds like my CPU is faster than yours.
    With db file scattered read I get
    Elapsed: 00:00:06.95
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        2      1.22       6.93     178293     178315          0           1
    total        4      1.22       6.94     178293     178315          0           1
    Rows     Row Source Operation
          1  SORT AGGREGATE (cr=178315 pr=178293 pw=0 time=0 us)
      60000   TABLE ACCESS FULL T1 (cr=178315 pr=178293 pw=0 time=41832 us cost=48697 size=240000 card=60000)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (AGGREGATE)
      60000    TABLE ACCESS   MODE: ANALYZED (FULL) OF 'T1' (TABLE)
    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
      Disk file operations I/O                        3        0.00          0.00
      db file sequential read                         1        0.00          0.00
      db file scattered read                       1414        0.00          5.36
      SQL*Net message from client                     2        0.00          0.00
    compared to your
      db file scattered read                       1415        0.00          4.16On the face of it with this test mine shows 21% improvement with direct path read compared to db scattered file read. So now I can go back to re-visit my original test results:
    First default with direct path read
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.00          2         47          0           0
    Execute    100      0.00       0.00          1         51          0           0
    Fetch      100     10.88    6519.89  194142802  194831012          0         100
    total      201     10.90    6519.90  194142805  194831110          0         100
    CPU ~ 11 sec, elapsed ~ 6520 sec
    wait stats
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      direct path read                          1517504        0.05       6199.93
    roughly 0.004 sec for each I/ONow with db scattered file read I get
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          2         47          0           0
    Execute    100      0.00       0.00          2         51          0           0
    Fetch      100    143.44    4298.87  110348670  194490912          0         100
    total      201    143.45    4298.88  110348674  194491010          0         100
    CPU ~ 143 sec, elapsed ~ 4299 sec
    and waits:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                    129759        0.01         17.50
      db file scattered read                    1218651        0.05       3770.02
    roughly 17.5/129759 = .00013 sec for single block I/O and  3770.02/1218651 = .0030 for multi-block I/ONow my theory is that the improvements comes from the large buffer cache (8320MB) inducing it to do some read aheads (async pre-fetch). Read aheads are like quasi logical I/Os and they will be cheaper compared to physical I/O. When there is large buffer cache and read aheads can be done then using buffer cache is a better choice than PGA?
    Regards,
    Mich

Maybe you are looking for

  • Problem with application variable

    Hello, I have one servlet which is reading the contents from web.xml and putting the values in the application object which I use in jsp program. As my servlet in get loaded at the startup so whenever I change the values in the web.xml then I need to

  • Sad ipod icon/folder with exclamation point......CANT RESTORE!!!!!

    so ive got some major ipod problems. cant get rid of sad ipod so i put into disk mode. then it changed to the exclamation point folder thingy. tried restoring it but my itunes either freezes up or doesnt show my ipod when i plug it in (whether its on

  • HT204370 cannot open error message

    I bought a tv series that downloads each current episode. I clicked the link, successfully downloaded the episode but when i tried to watch the episode an error message 'Cannot Open' keeps appearing?!

  • Navigation with inLineFrame component

    i used inLineFrame component in one page. i am able to navigate from one page to another with in the frame. But i want to come out after some navigation and display the full page in a new window. Thanks in advance prapansol Message was edited by: Pra

  • Assigned investment order in Asset Master

    Hi Guys We have to do budgeting to restrict the asset purchase over a particular value We are doing investment management for the same "THE ISSUE IS WHEN IAM DOING THE ME21N PURCHASE ORDER, THE SYSTEM IS NOT BLOCKING EVENTHOUGH THE VALUE EXCEEDS THE