OEM Instance Activity/ Physical I/O / REDO Size

This is Oracle 10g R2 running on zLinux.
When I look at our Physical I/O activity, the most activity by far, is listed as REDO Size. Sometimes it shows we are doing 10,000 I/O per second. Yep, we can handle that. However, most other I/O activity is shown in the 50 - 100 per second range.
It seems to me that I have something, rather inefficient going on. I haven't found any documentation that discusses what overhead factors relates to high redo activity. Yep, I see, from a query side, how that contributes to redo activity, but I don't see any reason for such high redo activity vs relatively low application activity.
Any suggestions?
Thanks
Tom Duerbusch
THD Consulting

Dear Mr. Hunt,
I'm an experienced Oracle DBA.
The tech staff in organizing VLDB systems (very large databases) is quiet similar to what you have showed here.
May I suggest, Perhaps, for your readers benefits ( especially those who do professional large scale editing projects) I think it will be a good idea to elaborate about some modern storage systems architectures like NetApp , EMC etc.
Using a modern storage systems can solve much of the I/O problems, and it seems to me after reading this article that me and you are dealing with the same IO problems: large amounts of data who needs to be wriiten and accessed very fast.
Thank you for your effort.
Sincerely Yours,
shimon.

Similar Messages

  • APPEND (direct path) - redo size

    I am sure, I might be missing something obvious. I am under the impression that DIRECT PATH loads (such as inserts with APPEND hint )would generate less redo. But, not sure why I am seeing this...
    Regular Insert (Not direct path):
    ====================
    SQL> insert into c2 Select * from dba_objects where rownum < 301;
    300 rows created.
    Statistics
    10 recursive calls
    74 db block gets
    353 consistent gets
    1 physical reads
    *31044 redo size*
    821 bytes sent via SQL*Net to client
    752 bytes received via SQL*Net from client
    3 SQL*Net roundtrips to/from client
    2 sorts (memory)
    0 sorts (disk)
    300 rows processed
    Direct Path Insert
    ===========
    SQL> insert /*+ APPEND */ into c2 Select * from dba_objects where rownum < 301;
    300 rows created.
    Statistics
    8 recursive calls
    13 db block gets
    346 consistent gets
    1 physical reads
    *39048 redo size*
    809 bytes sent via SQL*Net to client
    770 bytes received via SQL*Net from client
    3 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    300 rows processed
    Not sure, why am I seeing more redo being generated with DIRECT PATH .... either I am missing something obvious or got the DIRECT PATH load completely wrong...would really appreciate any help with this.

    Hello,
    Check out this thread:
    [http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3224814814761]
    Additionally, if you were to switch off logging at the table level, before the INSERT, you should see a (further) reduction in redo:
    ALTER TABLE your_table NOLOGGING;

  • LIO/PIO and redo size

    Hi,
    I have the query below:
    with D_FLO_PTN as (SELECT   *
                FROM   FLO_PTN
               WHERE   FLO_PTN.ID_ETU IN (SELECT   id_etu
                                            FROM   music_adm.adm_users_rights
                                           WHERE   user_name = UPPER ('SALG_CB'))
                       OR FLO_PTN.PDTETU IN
                               (SELECT   id_pdtetu
                                  FROM   music_adm.adm_users_rights
                                 WHERE   user_name = UPPER ('SALG_CB'))
                       OR EXISTS
                            (SELECT   1
                               FROM   music_adm.adm_users_rights
                              WHERE       id_etu = 0
                                      AND id_pdtetu = '0'
                                      AND user_name = UPPER ('SALG_CB'))),
    D_FAI_VIS as (SELECT   *
                FROM   FAI_VIS
               WHERE   FAI_VIS.ID_ETU IN (SELECT   id_etu
                                            FROM   music_adm.adm_users_rights
                                           WHERE   user_name = UPPER ('SALG_CB'))
                       OR FAI_VIS.PDTETU IN
                               (SELECT   id_pdtetu
                                  FROM   music_adm.adm_users_rights
                                 WHERE   user_name = UPPER ('SALG_CB'))
                       OR EXISTS
                            (SELECT   1
                               FROM   music_adm.adm_users_rights
                              WHERE       id_etu = 0
                                      AND id_pdtetu = '0'
                                      AND user_name = UPPER ('SALG_CB'))),
    d_dim_etu as (SELECT   *
                FROM   DIM_ETU
               WHERE   DIM_ETU.ID_ETU IN (SELECT   id_etu
                                            FROM   music_adm.adm_users_rights
                                           WHERE   user_name = UPPER ('SALG_CB'))
                       OR DIM_ETU.PDTETU IN
                               (SELECT   id_pdtetu
                                  FROM   music_adm.adm_users_rights
                                 WHERE   user_name = UPPER ('SALG_CB'))
                       OR EXISTS
                            (SELECT   1
                               FROM   music_adm.adm_users_rights
                              WHERE       id_etu = 0
                                      AND id_pdtetu = '0'
                                      AND user_name = UPPER ('SALG_CB')))                                
    SELECT   TRIM (TO_CHAR (D_FLO_PTN.PTNNUMETU, '00000')),
             FLO_ITM.FMLNOMPAP,
             FLO_ITM.ITMNOMPAP,
             FLO_ITM.ITMVALCHR,
             FLO_ITM.ITMVALNUM,
             D_FAI_VIS.VISCOD,
             TRIM (TO_CHAR (D_FLO_PTN.NBRCEN, '0000')),
             TRIM (TO_CHAR (D_FAI_VIS.ID_ETU, '000')) || '-'
             || TRIM(TO_CHAR (
                        SUBSTR (D_FAI_VIS.ID_PTN,
                                1,
                                LENGTH (D_FAI_VIS.ID_PTN) - 5),
                        '00000'
             || '-'
             || D_FAI_VIS.VISCOD,
             D_DIM_ETU.NUMETU,
             D_FLO_PTN.LIBPAY,
             FLO_ITM.ITMVALNUM,
             D_FAI_VIS.VISDATTXT,
             FLO_ITM.ITMVALNUM,
             FLO_ITM.FMLKEYVAL
      FROM  
             D_FLO_PTN,
             FLO_ITM,
             D_FAI_VIS,
             D_DIM_ETU
    WHERE       (FLO_ITM.ID_VIS = D_FAI_VIS.ID_VIS)
             AND (D_FLO_PTN.ID_PTN = D_FAI_VIS.ID_PTN)
             AND (D_DIM_ETU.ID_ETU = D_FLO_PTN.ID_ETU)
             AND (    D_DIM_ETU.NUMETU IN ('CL2-38093-011')
                  AND FLO_ITM.FMLNOMPAP IN ('MMS')
                  AND (D_FLO_PTN.INDSLC = 'YES')
                  AND TRIM (TO_CHAR (D_FLO_PTN.PTNNUMETU, '00000')) IN
                           (SELECT   TRIM (
                                        TO_CHAR (D_FLO_PTN.PTNNUMETU, '00000')
                              FROM    D_FLO_PTN,
                                     FLO_ITM,
                                     D_FAI_VIS
                             WHERE   (FLO_ITM.ID_VIS = D_FAI_VIS.ID_VIS)
                                     AND (D_FLO_PTN.ID_PTN = D_FAI_VIS.ID_PTN)
                                     AND (    FLO_ITM.ITMNOMPAP IN ('TMMS_D')
                                          AND FLO_ITM.ITMVALNUM <= 20
                                          AND D_FAI_VIS.VISCOD IN ('ASSE'))))2 things I don't understand
    - almost LIO ~ PIO but I have 2.5GB for the buffer cache
    - redo size, I know about delayed block cleanout
    but the second execution should return redo size =0 no ?
    I am the only user on the database
    11.2.0.1
    1st execution
           1879  recursive calls
            332  db block gets
         250090  consistent gets
         248221  physical reads
           1804  redo size
         631470  bytes sent via SQL*Net to client
          14706  bytes received via SQL*Net from client
           1090  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
          16329  rows processed
    2nd execution
           1879  recursive calls
            332  db block gets
         250423  consistent gets
         248220  physical reads
           1732  redo size
        1149536  bytes sent via SQL*Net to client
          14706  bytes received via SQL*Net from client
           1090  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
          16329  rows processed

    user12045475 wrote:
    2 things I don't understand
    - almost LIO ~ PIO but I have 2.5GB for the buffer cache
    - redo size, I know about delayed block cleanout
    but the second execution should return redo size =0 no ?
    I am the only user on the database
    11.2.0.1
    2nd execution
    1879  recursive calls
    332  db block gets
    250423  consistent gets
    248220  physical reads
    1732  redo size
    1149536  bytes sent via SQL*Net to client
    14706  bytes received via SQL*Net from client
    1090  SQL*Net roundtrips to/from client
    0  sorts (memory)
    0  sorts (disk)
    16329  rows processed
    Given the amount of work you're doing, the actual redo generated is not worth worrying about other than for reasons of curiosity.
    LIO ~ PIO often indicates table scans or index fast full scans - and on 11.2 such scans can use serial direct reads; this would be sufficient to answer both your questions:
    a) On direct path reads the blocks are read into the PGA, not the buffer cache, so you have to re-read them on the second execution
    b) On direct path read you can do cleanout and generate redo, but the blocks are not in the cache so they don't get written back to the database, so you repeat the cleanout. (A small variation in redo could indicate some cleanout taking place on space management blocks which, I think, will go through the cache).
    Regards
    Jonathan Lewis

  • Audit dml vs noaudit dml - session stat huge difference in redo size DB 9.2

    Hi,
    I've just finished test ,where compared audit update table, delete table, insert table by user by access with noaudit dml statements.
    DB version is 9.2.0.8 , same test run twice on same configuration and data so its comparable .
    What concerns me the most is difference in redo size ,and redo entries , here goes table with results:
    noaudit            audit              statname
    486 439,00     878 484,00     calls to kcmgas
    40 005,00     137 913,00     calls to kcmgcs
    2 917 090,00     5 386 386,00     db block changes
    4 136 305,00     6 709 616,00     db block gets
    116 489,00     285 025,00     deferred (CURRENT) block cleanout applications
    1,00     3 729,00     leaf node splits
    361 723 368,00     773 737 980,00     redo size
    4 235,00     50 752,00     active txn count during cleanoutCould You explain that differences in statistics, especially in redo size.
    I'm suprissed because in 9.2 DB audit dml doesnt log actual sql statements, only indication of usage .
    Regards.
    Greg

    Hi,
    I've just finished test ,where compared audit update table, delete table, insert table by user by access with noaudit dml statements.
    DB version is 9.2.0.8 , same test run twice on same configuration and data so its comparable .
    What concerns me the most is difference in redo size ,and redo entries , here goes table with results:
    noaudit            audit              statname
    486 439,00     878 484,00     calls to kcmgas
    40 005,00     137 913,00     calls to kcmgcs
    2 917 090,00     5 386 386,00     db block changes
    4 136 305,00     6 709 616,00     db block gets
    116 489,00     285 025,00     deferred (CURRENT) block cleanout applications
    1,00     3 729,00     leaf node splits
    361 723 368,00     773 737 980,00     redo size
    4 235,00     50 752,00     active txn count during cleanoutCould You explain that differences in statistics, especially in redo size.
    I'm suprissed because in 9.2 DB audit dml doesnt log actual sql statements, only indication of usage .
    Regards.
    Greg

  • Looking for average and max redo size generated per second

    Please,
    I'm implementing Dataguard physical standby on Oracle 10g R2 on Windows 2003.
    My issue is now how could I get redo size generated per second to compare with the actual bandwidth between primary and standby database.
    I know I can use the Database Console, but It wasn't installed at the database production.
    There's any link or script or view that I could use to resolve this issue?Thanks

    It depends on the statmemnst and the datatpyes that are inserted or update or deleted
    select b.name,a.value from v$sesstat a, v$statname b where a.statistic#=b.statistic# and b.name = 'redo size' and a.sid=<your SID>;
    courtesy to Daljit

  • AWR Instance Activity

    Hi,
    Version 10204. On HPUX
    AWR show a significant value in the Instance Activity section , related to the following parameters:
    OS Characters read/written 1,138,437,632 313,485.5 #############
    OS Integral unshared data size 1,164,871,930 320,764.6 #############
    Does somebody know what are they , and what can cause them to have such a high value ?
    Thanks

    Hi
    "If you google "OS Integral unshared data" should find plenty of explanations: I just did. " ===>
    Maybe there are plenty of entries but non of them explain what it mean ..... :(
    Thanks Again.

  • I try to 'Print booklet' and receive an eror that "the active document uses multiple page sizes..."

    I try to 'Print booklet' and receive an eror that "the active document uses multiple page sizes..." but all the pages on my document are in the same size (as far as I know)
    How can I deal with this eror?

    This seems to be a bug, and so far the only workaround I know is  to copy/paste everything into a new file.

  • Estimate Redo Size

    Hii All
    Is there any math to estimate how much redo a sql will generate ? I know redo size statistic shows but I am just asking for understand basic concept.
    For example I am updating LOC column on dept table that is the scoot schema and has not index on column so this dml generate about 200-300 byte redo
    Best Regards..

    >
    What purpose of the giving my user statistics ?
    >
    The purpose is to remind you that you appear to be violating forum etiquette by not marking your questions answered.
    You have 66 previous questions that you have not marked as ANSWERED and it is statistically unlikely that none of them have actually been answered.
    The likely reason is that you are not following forum etiquette and marking questions answered. See the FAQ (link in upper right corner of this page) for forum rules.
    >
    What is proper discussion forum etiquette?
    When asking a question, provide all the details that someone would need to answer it including your database version, e.g. Oracle 10.2.0.4.
    Format your code using code tags (see "How do I format code in my post?" below). Consulting documentation first is highly recommended. Furthermore, always be courteous; there are different levels of experience represented. A poorly worded question is better ignored than flamed - or better yet, help the poster ask a better question.
    Finally, it is good form to reward answerers with points (see "What are 'reward points'?" below) and also to mark the question answered when it has been.
    >
    When people review forum questions for possible answers they do NOT want to waste their time on questions that have already been answered. So when you do not mark your questions answered when they have been those questions just junk up the forum and waste people's time.
    No marking questions answered also suggests that you are not a team player; you want people to help you but you are unwilling to help them by keeping the forum clean.
    Please revisit those 66 previous questions, give HELPFUL or ANSWERED credit where credit is due and then mark them ANSWERED if they have been answered.

  • Redo size(KB) over the period from AWR

    Hi,
    Could anyone please let me know how to write an SQL query (involving AWR tables/views) to report the redo size(KB) generated for 1 hour interval over the last one week. My current AWR settings are 1 hr interval and the retention period is 7 days. Using EM DBConsole, when I click a particular snapshot id, it gives, among other metrics, the details of redo size(KB) generated during the corresponding snapshot interval but I don't know where this data is stored.
    Thanks,
    Sreekanth

    dba_hist_sysstat
    Sybrand Bakker
    Senior Oracle DBA

  • DB time in AWR "Instance Activity Stats" section

    Dear all,
    I don't understand in what metric this db time metric is expressed. Is it in milli-, micro-, centiseconds?
    I have 3,848.36 dbtime per second but what does that mean in seconds?
    Instance Activity Stats
    Statistic     Total     per Second     per Trans
    CPU used by this session      78,259      21.76      60.53
    CPU used when call started      188,815      52.51      146.03
    CR blocks created      1,628      0.45      1.26
    Cached Commit SCN referenced      3,492,204      971.18      2,700.85
    Commit SCN cached      63,550      17.67      49.15
    DB time      13,838,024      +3,848.36+      10,702.26
    Kind regards,
    Jorn
    Edited by: 1004797 on May 8, 2013 7:14 AM

    Perfectly possible.
    Sounds like you're confusing DB time with CPU time.
    Cores are irrelevant.
    If in doubt, see your load profile.
    DB time represents Average Active Sessions in a time period.
    In a 1 second period....
    If for 100% of that 1 second period, you have 1 session either on cpu or waiting for cpu or actively waiting for a non idle event, DB time is 1 second.
    If for 100% of that 1 second period, you have 2 sessions either on cpu or waiting for cpu or actively waiting for a non idle event, DB time is 2 seconds.
    If for 100% of that 1 second period, you have 5 sessions either on cpu or waiting for cpu or actively waiting for a non idle event, DB time is 5 seconds.
    If for 100% of that 1 second period, you have 38 sessions either on cpu or waiting for cpu or actively waiting for a non idle event, DB time is 38 seconds.
    To a certain extent, it doesn't matter if I double the number of cores or halve the number of cores, if I have 38 sessions actively working or actively waiting for 100% of that 1 second, then DB time for that 1 second is 38 seconds.

  • Got compilation error about 'create instance activity' using file adapter

    Hi,
    I am creating a very simple bpel process using file adapter. in my 'Receive' activity, I selected 'create instance' , as the tutorial says.
    I got this compilation error during deploying.
    'Error(31): [Error ORABPEL-10051]: multiple create instance activity [Description]: in line 31 of "D:\OraBPELPM_1\integration\jdev\jdev\mywork\BPELPractices\FileAdapterTest2\FileAdapterTest2.bpel", Conflicting createInstacne="yes". Instance is already created by another activity. [Potential fix]: Remove createInstance="yes" attribute from this activity. '
    Several people had the same problem in my team. I wonder if this is a common issue. how to fix it?
    Thanks,
    Kate

    You must be having another receive/pick activity within the same process that has "createInstance" set to yes.
    Thats why its complaining.

  • Difference Between Logical Screen and Active/Physical Screen

    Hi All,
    Could someone tell me what is the Diffrence Between Logical Screen and Active/Physical Screen and what is the reason for having two screens instead of one.
    Thanks in Advance,
    Joseph Reddy.

    Hi Marilyn,
    Thanks You. I have found the answer to this.
    All,
    If you go to the SPRO>Logistics Execution>Mobile Data Entry-->Define Screen Management. Here you have two screens one is Logical Screen and another actual Screen and a program associated to this.
    Here the Logical Screens are used within the program and Actual screens are the screens which are visible to the User. The Link between Logical and actual screen is present in the table T3130C. Program recognises logical screens.
    Now suppose say certain functionality/create new transaction code for RF Device is not there in SAP and you want to Include/Create your own code in any of the User-Exits. Then you have to rename the actual screen to 9***. So that the system recognises the change in the screen and related User-Exit is executed.
    Hope this is Clear.
    Thanks & Regards,
    Joseph Reddy.

  • Instance/activity not found, next expiration attempt

    Hi!
    i have process, where notification email is send, then it waits two days and sends another mail. Somehow happen, that one instance dissappeared from datastore and now i have in log of bpel domain the following entry every two minutes!:
    <2006-04-11 13:47:59,790> <INFO> <viphoneBreak.collaxa.cube.engine> <CubeEngine::expireActivity> Instance/activity not found, next expiration attempt (?/5) for activity "223877-BpWai0-BpSeq0.3-9" scheduled for "April 11, 2006 1:49:59 PM CEST"
    The mentioned instance (223877) cannot really be found. It's not problem, that the instance is lost (but i don't know why), but what matters, that every two minutes appears this entry in log file. Can this non-existent instance be somehow un-scheduled??
    Thanks a lot for help,
    Tomas

    Did you ever figure out how to kill the timer process?

  • Kde4.4's newspaper activity: how to change applets' size?

    Well, the title pretty much says it all: how is it possible (... is it?) to change (or limit somehow) the size of applets in kde4.4's "newspaper activity" [netbook workspace (or whatever they're calling these things today)]. I've got a netbook and for this newspaper thingy to be useful, it's pretty important that one can limit the amount of screen that some applets take. For instance the 'news' (rss) applet tends to extend itself so much that it goes beyond the screen size, which makes it impossible to use any other applet in the same column.
    Thanks for any hints.

    Ahh, that sucks. Otherwise I really like the way the netbook interface works ...
    EDIT: Yes, they resize a bit, but the long ones remain long and the workspace just gets virtually bigger (and the bar on the right smaller)
    Last edited by bender02 (2010-02-18 14:50:24)

  • ASO physical clear increases cube size?

    I am testing out performance and feasibility of a physical clear and have noticed that the cube size actually INCREASES after doing a physical delete. The cube size increased from 11.9 GB to 21.9 GB. Anyone know why?
    Our ASO cube is used as a forecasting application and models are being updated consistently. Logical delete won't work because a model can be updated multiple times and direct quote from manual precludes the logical clear option.
    "Oracle does not recommend performing a second logical clear region operation on the same region, because the second operation does not clear the compensating cells created in the first operation and does not create new compensating cells."
    Here is the MDX I used to do a physical clear of ~120 models from the cube.
    alter database Express.Express clear data in region
    PM10113,
    PM10123,
    PM10124,
    PM10140,
    PM6503,
    PM6507,
    PM6508,
    PM6509,
    PM6520,
    PM6528
    }' Physical;
    Any insight would be greatly appreciated.

    I am sorry but I do not have my test system available so i will have to do it from memory.
    I am surprised at this - it is what you would expect if you did a logical clear. When you look at db statistics does the number of cells reflect the original less the cleared area? And does it show no slices? If so then you did do a physical as your maxl indicates.
    You might want to stop and start the application. Otherwise I will have to check some more.
    But given the size of the increase (almost doubled) I would wonder why you would do a clear as opposed to a reset. Finally I am wondering why you are doing a clear at all? Why not just a send and let an incremental slice. That way only the changed cells would be found in the slice. More important the slices would be quite small and likely automatically "merged".
    Finally - I am wondering about the DBAG quote (page 982 on PDF) you included. Again I would have to test but I think they are only warning that the the number of slices will start to build up but I would expect that "because the second operation does not clear the compensating cells created in the first operation and does not create new compensating cells". The net result would still be correct.

Maybe you are looking for