Oracle transaction per day in MB

Hi all,

Recently I need to generate a report by showing the transaction size in MB per day. Anyone can let me know how to interprete the statspack report below? Is it possible that I can calculate the transaction size in MB per day based on redo size per second? Please advice. Thanks.

Load Profile
~~~~~~~~~~~~                            Per Second       Per Transaction
                                   ---------------       ---------------
                  Redo size:             32,025.02             13,022.66
              Logical reads:              3,873.07              1,574.95
              Block changes:                177.77                 72.29
             Physical reads:                837.19                340.44
            Physical writes:                 11.30                  4.60
                 User calls:                175.73                 71.46
                     Parses:                162.81                 66.21
                Hard parses:                  3.84                  1.56
                      Sorts:                147.53                 59.99
                     Logons:                  0.31                  0.13
                   Executes:                221.90                 90.23
               Transactions:                  2.46

  % Blocks changed per Read:    4.59    Recursive Call %:     80.60
 Rollback per transaction %:   10.74       Rows per Sort:      1.51


Regards,
chewlf
chewlfAsked:
Who is Participating?
 
DauheeConnect With a Mentor Commented:
The following will give you the amount of logs generated per day and multiplies out by redo size. So in essense you get "Oracle transaction per day in MB"


SELECT  to_char(first_time, 'dd-mm-yyyy') "Date",
        count(*) * (Select
       distinct bytes / 1024 / 1024
from sys.v_$log) "Megs_Tran"    
FROM    V$log_history
where first_time > trunc(sysdate - 3)
group by to_char(first_time, 'dd-mm-yyyy')
0
 
DrSQLCommented:
chewlf,
    My guess is no.  While I don't know the reason behind your request and I don't know what YOU mean by "transaction" there are several problems with using redo statistics.  Here are a few:

1) More than just your application transactions are protected by the redo log.  Oracle's normal operations (changes to dictionary, status, etc.) are also logged.
2) Rollbacks (UNDO) are also logged in order to allow for recover, flashback, etc.  This overhead is duplicative and, again, may be for Oracle and not for your transactions.
3) If you have anything with NOLOGGING - that's what this turns off - the REDO log.  So tables that are part of your "transaction" and are nologging won't be included (directly) in the redo stats.

If you just want a straight MB based assessment of the impact of your transactions on a daily basis, then I'd suggest using the DBA_SEGMENTS table.  If you collected (in a batch job) the amount of "used" space by your applicaiton tables on a daily basis, you should be able to track their growth (and thus your transaction's storage rate).

Good luck!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.