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; -
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 processeduser12045475 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.
GregHi,
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?ThanksIt 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 -
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 ?
ThanksHi
"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..." 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.
-
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,
Sreekanthdba_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 AMPerfectly 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,
KateYou 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,
TomasDid 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
-
Invalid Security role-name error in Web Project
Hi All, I have imported a J2EE application project built in JBOSS into NWDS 7.1. While building the project i get the following error <b>CHKJ3020E:Invalid Security role-name error: PEHNTAHO_ADMIN</b> This error directs me to the following code in web
-
No connect to database possible while logging in sap system
hi to all experts , all the work process are wait state but with one work process i have error 1 and when im trying to logon to sap im getting this message no connect to database possible session terminated dev_disp trc file: "dev_disp", trc level: 1
-
System Locks up with PCI64 downl
Re-formatted my HD. Uploaded windows 98se plus display drivers and video card driver. As soon as I start to load PCI64 software (from Cd or download), computer locks up. No keyboard or mouse actions. Have to reboot in Safe mode to get anything, but c
-
in my ICLOUD email acct in FROM a name appears before my iCloud email address . How can I DELETE or CHANGE this Name?
-
Playlist too big for Ipod shuffle
I've been happily using a 2nd gen shuffle and it selects songs from my favorite playlist. The playlist is 2000 songs, and obviously doesn't fit on that shuffle, but the shuffle just randomly picks songs from that specific playlist. Now I have a 3rd g