Performance tuning is a never-ending task for the DBA, and this learning guide can help newbies and experts establish a smart approach to tuning, use and interpret Oracle's tuning utilities and identify specific problem areas.
No matter what version of Oracle you are using, the basics of performance tuning remain the same. Problems can stem from a variety of causes, and as the DBA, your job is to figure out what they are. For example, poorly designed applications and database schemas can cause issues like excessive CPU consumption due to too many logical I/Os, excessive disk reads due to missing indexes or excessive contention for shared resources.
Although preeminent performance tuning guru Don Burleson stresses that there is no shortcut to successful Oracle tuning, and the tuner must intimately understand the complex interactions of the Oracle subsystems and be aware of some common tuning fallacies. Mike Ault further debunks common Oracle tuning myths.
Tuning a database is a time-intensive, repetitive task. Over time, the database changes in many ways and must be reevaluated. Read up on some first steps involved in determining database performance. Know that upgrades may cause performance issues. In addition, changes made to improve performance will need to be evaluated. This series identifies a standard approach for performing or evaluating database tuning efforts. It is applicable to data warehouses, custom databases, custom database applications or Oracle Applications database.
Performance tuning means optimizing specific, individual aspects of your system's hardware and software, but here are a few general ideas to keep in mind:
Old versus existing databases
The approach you take to tuning a new database should be no different than that for an existing one. But many database and instance parameters do have a noticeable effect on performance. It may help to reorganize the database. Pay attention to the database cache size, shared pool size, PGA aggregate target and session_cached_cursors as you run applications for the first time, and adjust them as necessary. Read Don Burleson's undocumented secrets for super-sizing your PGA.
Full table scans Full table scans have been blamed for poor query and database performance in the past, but their utility and performance have improved with each successive version of Oracle's DBMS. Here's how to find full table scans in 9i.
Connectivity
When a process is on the same machine as the server, use the IPC protocol for connectivity instead of TCP. If your database is distributed across a few servers, and you need to access the database across these servers, one way to improve performance is through the use of database links.
RAID versus non-RAID
There are many factors that contribute to the performance of RAID for Oracle databases, including stripe size, disk speed, disk connection architecture and mirroring.
Optimizing disk I/O is a critical part of performance tuning. Mike Ault's book Oracle disk I/O tuning covers topics that include disk performance, RAID management, Oracle data file performance and Oracle data segment internals. Background information includes general disk architecture, disk layout, disk performance statistics and disk capacity.
Kimberly Floss' book Oracle SQL and index internals describes advanced Oracle SQL internals and Oracle indexing management. These chapter excerpts offer an introduction to the step-by-step process of SQL tuning:
System performance problems may not be caused by DBMS problems at all. These resources provide an overview of tuning Oracle applications and Application Server.
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.