Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 







Don't use the OPTIMAL Parameter

Oracle Tips by Burleson Consulting
Don Burleson

Don't use the OPTIMAL Parameter

Don Burleson


The Oracle documentation on rollback segment rollback segment sizing is wrong in many spots, especially regarding the OPTIMAL parameter.  The OPTIMAL parameter assumes growth, followed by a shrink.  If the rollback segment is sized properly, they should never grow.  Hence, I do not recommend using the OPTIMAL parameter.  The "optimal" size of the rollback segment occurs when you do not get ?snapshot too old? errors, and your rollback segment does not grow (it must then shrink later to OPTIMAL size).

Here is the approach that my consultants use to iteratively optimize the rollback segment size in Oracle8i:

a) Create multiple rollback segment, each rollback segment with 20 minextents and set maxextents to 255.  Also set INITIAL=NEXT=(your_optimal_size/20).

b) Place each rollback segment in its own tablespace.  The tablespace should be able to AUTOEXTEND ON.

c) Monitor the growth of each rollback segment beyond 20 extents.

d) During scheduled maintenance, manually take each rollback segment offline, drop the rollback segment, and re-allocate with the right-sized datafile for 20 extents (based on historical growth in v$rollstat).

e) Large batch update jobs (that may get ORA-01555 "snapshot too old" errors), can be altered to use a single large rollback segment.  The rollback segment can be explicitly assigned with the "set transaction use rollback segment" command.

Sizing the Rollback Segments (rollback segment) is an iterative process and requires several scheduled maintenance windows to re-size the rollback segment, based on the DML load.  The optimal rollback segment size is a function of system update load (as determined by v$rollstat and v$transaction):

a)       The COMMIT frequency.

b)       The size of RAM log buffers.

c)       Specific Oracle parameters (log_buffer, db_writer_processes, log_checkpoint_interval).

d)       The size of the rollback segment data files.

 The total size of the UNDO area for a specific transaction is as follows:

   If the undo is 'x' bytes for 'n' number of rows then

                T = x * (N / n) * 1.05

        Where   T = Approximate Total undo for the transaction in bytes.
                x = Undo for the individual transaction.
                N = Total number of rows in the original table.
                n = Total number of rows in the test table.

Optimal rollback segment sizing is an iterative process, and is normally "tuned" over a period of several weeks.  Generally, we build spreadsheets to track usage and determine the optimal size:

Many related topics are covered in my upcoming new book Oracle Tuning: The Definitive Reference by Rampant TechPress.  This book will be printed in just a few weeks, and is available at this link:


Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.