Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Archive Log affects performance?

Re: Archive Log affects performance?

From: Howard J. Rogers <dba_at_hjrdba.com>
Date: Sun, 20 Jan 2002 16:40:55 +1100
Message-ID: <3c4a5820$0$6772$afc38c87@news.optusnet.com.au>


Well, if you're going to update every column in the table, you can of course expect my statement not to hold -but that would (I believe) be a pretty unusual update! I suppose if I'd stuck the word 'typical' in front of 'update' and 'insert', I'd have been nearer the mark:

SQL> insert into emp (empno, ename,job,mgr,sal,comm,deptno) values (123,'SMITH','CLERK',7934,467.78,0,10); 1 row created.

Statistics


        151  recursive calls
         15  db block gets
         18  consistent gets
          0  physical reads
       1172  redo size
        879  bytes sent via SQL*Net to client
        723  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL> update emp set sal=987.56 where empno=123;

1 row updated.

Statistics


          0  recursive calls
          9  db block gets
        349  consistent gets
          0  physical reads
        660  redo size
        880  bytes sent via SQL*Net to client
        661  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          1  rows processed

1172 versus 660... around half the redo for the update compared with the insert.

--
----------------------------------------------
Resources for Oracle: http://www.hjrdba.com
===============================


"Thomas Kyte" <tkyte_at_us.oracle.com> wrote in message
news:a2d0e401dnv_at_drn.newsguy.com...

> In article <3c49eddf$0$6772$afc38c87_at_news.optusnet.com.au>, "Howard
says...
> >
> >That's what happens when you write posts at 4.00am. You miss juicy
little
> >bits like that.... but, of course, if it's an update, the redo involved
will
> >be trivially small in comparison to what an insert would generate,
anyway.
> >
> >Regards
> >HJR
>
> really?
>
> ops$tkyte_at_ORA817DEV.US.ORACLE.COM> create table t as select * from
all_objects
> where 1=0;
>
> Table created.
> >
> ops$tkyte_at_ORA817DEV.US.ORACLE.COM> set autotrace on stat
> ops$tkyte_at_ORA817DEV.US.ORACLE.COM> insert into t select * from
all_objects; >
> 17161 rows created.
> >
> Statistics
> ----------------------------------------------------------
> 2429 recursive calls
> 1644 db block gets
> 82010 consistent gets
> 0 physical reads
> 1951956 redo size
> 1149 bytes sent via SQL*Net to client
> 864 bytes received via SQL*Net from client
> 6 SQL*Net roundtrips to/from client
> 2 sorts (memory)
> 0 sorts (disk)
> 17161 rows processed
>
> ops$tkyte_at_ORA817DEV.US.ORACLE.COM> update t set
> 2 owner = owner, object_name = object_name, SUBOBJECT_NAME =
SUBOBJECT_NAME,
> 3 object_id = object_id, data_object_id = data_object_id, object_type =
> object_type,
> 4 created = created, last_ddl_time = last_ddl_time, timestamp =
timestamp,
> 5 status = status, temporary = temporary, generated = generated,
secondary =
> secondary;
>
> 17161 rows updated.
> >
> Statistics
> ----------------------------------------------------------
> 0 recursive calls
> 18184 db block gets
> 235 consistent gets
> 0 physical reads
> 9182504 redo size
> 1009 bytes sent via SQL*Net to client
> 1116 bytes received via SQL*Net from client
> 4 SQL*Net roundtrips to/from client
> 1 sorts (memory)
> 0 sorts (disk)
> 17161 rows processed
> >
> 1951956 redo size inserting...
> 9182504 redo size updating...
> >
> even in the "less degenerative" case:
>
> ops$tkyte_at_ORA817DEV.US.ORACLE.COM> update t set object_name = object_name;
>
> 17161 rows updated.
> >
> Statistics
> ----------------------------------------------------------
> 0 recursive calls
> 17658 db block gets
> 469 consistent gets
> 0 physical reads
> 4948288 redo size
> 1010 bytes sent via SQL*Net to client
> 819 bytes received via SQL*Net from client
> 4 SQL*Net roundtrips to/from client
> 1 sorts (memory)
> 0 sorts (disk)
> 17161 rows processed
> > > > >
> >
> >--
> >----------------------------------------------
> >Resources for Oracle: http://www.hjrdba.com
> >===============================
> >
> >
> >"Igor Ushkalo" <igorus_at_protek.ru> wrote in message
> >news:a2bubn$l65$1_at_news.sovam.com...
> >> Hello, Howard!
> >> You wrote on Sun, 20 Jan 2002 00:29:58 +1100:
> >>
> >> HJR> You can switch that off without having to disable archivelog mode
> >> HJR> itself merely by altering the relavant table to be
'NOLOGGING' -and
> >> HJR> then making sure that this bulk insert is being done by SQL
Loader.
> >> HJR> If it's just a conventional 'insert' statement you're doing then
> >> HJR> NOLOGGING won't do anything for you at all. Otherwise, it will
> >> HJR> switch off the generation of all redo -and since nothing is
getting
> >> HJR> into the online logs, you worries about its impact on ARCH will
be
> >> HJR> sorted at the same time.
> >>
> >> But it seems he wants UPDATE table... i dunno any way
> >> to do update in nologging mode.
> >>
> >> Maybe you can get some perfomance gain to switch to noarchivelog
> >> if all of your redo-logs are on the same device (mirror); but if logs
are
> >> situated on
> >> two mirrors (even/odd logs on different mirrors) - archiver won't be a
> >> problem...
> >>
> >> -- Best regards, Igor Ushkalo (igorus!) - igorus(at)mail.ru, ICQ
#19972198
> >>
> >>
> >
> >
>
> --
> Thomas Kyte (tkyte@us.oracle.com) http://asktom.oracle.com/
> Expert one on one Oracle, programming techniques and solutions for Oracle.
> http://www.amazon.com/exec/obidos/ASIN/1861004826/
> Opinions are mine and do not necessarily reflect those of Oracle Corp
>
Received on Sat Jan 19 2002 - 23:40:55 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US