People use databases to organize and to manage their data. Oracle Database is the leader
in the relational database management systems market, with a broad adoption in many
industries. Using the best tool is not enough to be sure that the results of our efforts will be
satisfactory—driving the fastest car in a Formula 1 competition, though better than driving
the slowest, doesn’t guarantee the first place at the checkered flag.
Every developer—and every manager—knows that applications have to be responsive,
because users hate to spend their time waiting for a transaction to end, looking at an
hourglass. To meet this goal, it’s important to adopt a correct tuning strategy, which starts
at the same time as the application design, then moves forward together, and will continue
even when the application and the database are in production.
Even though this is a cookbook on performance tuning, there are no silver bullets. Every
recipe in this book will show us how to solve a problem with the correct approach, so when
a similar problem arises in one of our databases, we can apply the correct solution even in
different situations than the ones presented in the book.
Before we start a database performance tuning process, we have to define what the tuning
goals that we aim to reach are. "As fast as possible" is not a tuning goal. The primary tuning
goal, generally speaking, is to reduce the response time or to reduce the resources needed
to do a certain amount of work in the same time.
At a lower level, to minimize response time we will try to:
* Reduce or eliminate waits
* Cache the largest number of blocks in memory
* Access the least number of data blocks (from disks)