Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: commits are not really commits
In general, a "commit" results in a
"redo synch write" being sent to the
log writer to write the log, and the
calling processes waits for a response
before continuing processing.
Within a pl/sql call, commits do not
result in a "redo synch write", lgwr
is posted to write asynchronously.
A "redo synch write" is posted only
when the pl/sql call completes.
This has two main side-effects
a) your processing keeps running
when it should be waiting
b) lgwr may piggyback several of
your commits by the time it wakes
up and manages to do your first
commit - so it generates less
redo wastage, and then does
fewer larger writes, rather than
one small write per commit.
If you emulate lots of small transaction by
writing a pl/sql loop you can easily get
results which are not representative of
real activity.
-- Regards Jonathan Lewis http://www.jlcomp.demon.co.uk Next Seminar dates: (see http://www.jlcomp.demon.co.uk/seminar.html ) ____Denver_______December 2/4 ____England______January 21/23 The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/faq/ind_faq.html Martin Doherty wrote in message <1rQH9.12$Td5.59_at_news.oracle.com>...Received on Fri Dec 06 2002 - 08:25:28 CST
>Connor,
>
>Fascinating comment - "... commit are not really commits...." Can
you
>expand a little on what this means? Does this impact the logical
>(programming) view point, or do you mean differences only in the
>physical implementation?
>
>Thanks
>Martin Doherty
>
>Connor McDonald wrote:
>
>>Ed Stevens wrote:
>>
>>
>>>[snip]
>>>
>>>
>>
>>plsql may not be a good one to use for the test because commit are
not
>>really commits so you get an artificial redo rate.
>>