Benchmarking is a normal part of the application development life cycle. It is a team effort involving both application developers and database administrators (DBAs), and should be performed against your application in order to determine and improve performance. Assuming that the application code has been written as efficiently as possible, additional performance gains can be realized from tuning the database and database manager configuration parameters to meet the requirements of the application.
There are several different types of benchmarking. A transaction per second benchmark would determine the throughput capabilities of the database manager under certain limited laboratory conditions. An application benchmark would test the same throughput capabilities, but under conditions that are closer to those under which your application will run when it is implemented. Benchmarking for the purpose of tuning configuration parameters is based upon these "real-world" conditions, and involves repeatedly running SQL taken from your application with varying parameter values until your application runs as efficiently as possible.
The benchmarking methods described in this section are oriented towards the configuration parameters. However, the same basic technique can be used for tuning other factors that affect performance, such as:
Benchmarking is helpful in understanding how the database manager responds under varying conditions. You could create scenarios that test deadlock handling, utility performance, different methods of loading data, transaction rate characteristics as more users are added, and even the effect on the application of using a new release of the product.
The following topics are provided: