The developer database administrator needs to know how to optimize performance to ensure that anything he or she designs will perform up to its potential. The developer DBA must ensure that the system will start its life performing well; and that as inevitable changes are made to the system throughout its life cycle, they are made in a way that enables the application to continue to perform. As the system grows in terms of data, users, and functionality, it needs to grow in ways that keep the system operating optimally.
Similarly, the production DBA needs to understand performance so that the system he or she maintains starts out performing well and then continues to do so throughout the system's life cycle. Several different elements factor into this, from getting the server set up correctly, to monitoring the system as it starts working, to implementing a full monitoring strategy to keep the system operating optimally.
The three most important aspects of delivering high performance around scalability, response time, reliability, and usability are as follows:
Knowing what your system can deliver in terms of CPU, memory, input/output (I/O).
Finding the bottlenecks.
Knowing your target (how many, how fast).
This chapter discusses all of these issues and addresses the most pressing questions regarding performance and configuring a server.