BC remote Oracle DBA - Call (800) 766-1884  
Oracle Consulting Oracle Training Development

Remote DBA

Remote DBA Plans  

Remote DBA Service

Remote DBA RAC

Remote DBA Oracle Home
Remote DBA Oracle Training
Remote DBA SQL Tuning Consulting
Remote DBA Oracle Tuning Consulting
Remote DBA Data Warehouse Consulting
Remote DBA Oracle Project Management
Remote DBA Oracle Security Assessment
Remote DBA Unix Consulting
Burleson Books
Burleson Articles
Burleson Web Courses
Burleson Qualifications
Oracle Links
Remote DBA Oracle Monitoring
Remote DBA Support Benefits
Remote DBA Plans & Prices
Our Automation Strategy
What We Monitor
Oracle Apps Support
Print Our Brochure
Contact Us (e-mail)
Oracle Job Opportunities
Oracle Consulting Prices





Remote DBA services

Remote DBA Support

Remote DBA RAC

Remote DBA Reasons

Remote Oracle Tuning

Remote DBA Links

Oracle DBA Support

Oracle DBA Forum

Oracle Disaster

Oracle Training

Oracle Tuning

Oracle Training

 Remote DBA SQL Server

Remote MSSQL Consulting

Oracle DBA Hosting

Oracle License Negotiation








Database Internals Tuning

Oracle Tips by Burleson Consulting

This chapter deals with the tuning of Oracle internal structures. Oracle uses memory to speed processing by use of the System Global Area, or Shared Global Area (depending on who you ask), or, the SGA. The SGA consists of several cache areas and pool areas, and each needs to be tuned to obtain optimal performance. An additional complexity, the capability to have SGA areas with different-sized db_block_buffers, makes SGA tuning even more fun.

Memory Tuning

Database internals tuning is a complex topic. Just when you think you have Oracle internals figured out, Oracle slips in some new features, takes old ones away, or, just for some perverse form of fun, changes the structures of tried-and-true tables and views. Actually it is all a secret plot between senior Oracle Remote DBAs and Oracle to maintain job security.

This section will cover one of the more challenging and critical aspects of the Remote DBA job: analyzing, diagnosing, and fixing database internals performance problems. The last chapter discussed application tuning. You will get a majority of the performance gains in an application from proper database configuration and application tuning. However, where you will be most exposed will be in the area of internals tuning. Squeezing that last bit of performance from the database seems to be the one area managers like to focus on (they forgot the bit about application tuning and now expect you to work miracles) when there are problems.

Steps to Internals Tuning

As was said at the end of the last chapter, once the application has been tuned, the Remote DBA's job really begins. Now you can begin tuning the Oracle system itself to take advantage of the tuned application. This step of the tuning process is typically a five-part process:

1. Review and set all initialization parameters for your application and operating system.

2. Tune memory allocation.

3. Eliminate I/O bottlenecks.

4. Tune resource contention.

5. Tune sorts, freelists, and checkpoints.

The first step involves reading the operating system-specific release manual and database readme files for any new, changed, or improved initialization parameters. Using your knowledge of the number of users, size of the system memory, number and configuration of disks, sizing of tables, and other system and application parameters, you must do your best to set all of the initialization parameters that will help your system perform better. Parameters can be reviewed by looking at initialization file or by querying V$PARAMETER file. (Note: The Wiley Web site includes a script to report on changed initialization parameters (param9.sql).) You should also perform a control file dump using the command:


The second step requires an up-and-operating database against which you run various performance-monitoring scripts and tools; then you readjust the initialization parameters. You should also examine database and session level waits using queries against V$WAITSTAT and V$SESSION_WAIT dynamic performance views.

The third step requires monitoring your disk assets and their performance. Your system administrator will be critical to assuring the success of this step. Hopefully, if you were able to have a hand in designing the system layout, you won’t have much I/O-related tuning. An inherited database (especially those from aftermarket products) usually requires extensive file movements and optimizations, so this step could actually give the most performance gains.

In one system I inherited, a well-meaning Remote DBA had rebuilt the application indexes, by disabling and then re-enabling the primary keys, without specifying the location for the indexes. Of course, you will remember what this causes: all of the indexes were in the same tablespace as the data tables. Simply moving the indexes to their (empty) tablespace resulted in an over 300 percent performance gain (one 30-minute query dropped to less than a minute). I was an instant hero. What this anecdote should tell you is to carefully examine any inherited database for badly placed indexes, tablespaces, rollback segments, and redo logs. Just putting everything where it should be can provide dramatic improvements in performance for badly laid-out systems.

Step 4 involves more monitoring with tools or scripts. Contention for system resources (latches, rollbacks, logs, memory, etc.) can be a real performance drain. Always review the alert log for all databases you inherit, as they will tell you if there are some forms of contention such as for redo logs. The scripts that follow will help determine if there are other types of contention.

Step 5 will involve monitoring system statistics on a running application. There are numerous tools, as well as the scripts included in this section, that will tell you if you have problems with sorts, freelists, and checkpoints. Tuning sorts is especially important in DSS and reporting databases. In one case, a 10-minute sort dropped to less than a minute by bumping up the SORT_AREA_SIZE parameter 2 to 3 megabytes, thus preventing disk sorts.

Each of the following sections addresses a specific area, and includes reports and scripts to help you monitor your database.

See Code Depot for Full Scripts

This is an excerpt from Mike Ault, bestselling author of "Oracle 10g Grid and Real Application Clusters".

You can buy it direct from the publisher for 30%-off and get instant access to the code depot of Oracle tuning scripts.

Expert Remote DBA

BC is America's oldest and largest Remote DBA Oracle support provider.  Get real Remote DBA experts, call
BC Remote DBA today.



Remote DBA Service

Oracle Tuning Book


Advance SQL Tuning Book 

BC Oracle support

Oracle books by Rampant

Oracle monitoring software







BC Remote Oracle Support

Remote DBA

Remote DBA Services

Copyright © 1996 -  2013 by Burleson. All rights reserved.

Oracle® is the registered trademark of Oracle Corporation.

Hit Counter