> If I am reading Oracle documents correctly, redo synch writes are writes that > are triggered by commits and redo writes are all redo writes combined which includes > the former plus log buffer flush involved writes such as buffer 1/3 full, redo size > reaching 1 MB or at log switches and that’s what I have believed for years. > > If this is correct, the latter should be slightly more than the former in our > environment. > > But our statspack shows that redo writes is always slightly less than redo synch writes > in the same snapshot. What is your understanding? I did some test on my laptop running 9205 and proves what we understand, i.e. redo > writes includes both foreground redo writes due to commits and background writes > according to the other rules (1/3 or 1MB full). So I don't know the explanation > either of what's happening in our databases. Somebody asked exactly the same question on Metalink but got no meaningful answer: https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=FOR&p_id=424723.995 > I have never read into that kind of detail, could this be the side effect of oracle > doing batch commit? That is, redo sync writes are number of writes oracle tries to do, > redo writes are the actual number of writes oracle did (issued pwrite/kaio_write to the > underlying OS)? I looked at this again. If you check v$sesstat for these two stats, you'll see 'redo writes' is understandably only for LGWR. But 'redo synch writes' statistic is for non- background, server processes. Because server processes can never write to redo logfiles, we can say that 'redo synch writes' may be better called requests sent to LGWR to write redo to logfiles. Since many sessions can send requests to LGWR at exactly the same moment, LGWR can have less 'redo writes' than 'redo synch writes' due to group commits. The fact that 'redo synch writes' is for server processes only makes you wonder 'redo synch writes' value should not be too far off from 'log file sync' waits, which is also for server processes. But it's possible 'log file sync' waits is much less than 'redo synch writes' probably because Oracle sometimes misses counting the wait events? > What's the best way to find the LGWR write speed? It may be: 'redo blocks writen' * 512 / 'redo write time'. The unit is bytes per centisecond. 512 is the most common logfile blocksize, which you can find in x$kccle.lebsz, or on UNIX/Linux, with `dbfsize '.