Monday, February 24, 2014

Tuning During the Life Cycle



An application’s life cycle can be divided into different phases:
  • Application design and development
  • Testing: Database configuration
  • Deployment: Adding a new application to an existing database
  • Production: Troubleshooting and tuning
  • Migration, upgrade, and environment changes


Tuning can be divided into two classes:
  • Proactive (make it better, so it will not break) 
    • Test scenarios. 
    • Find the problem areas. 
    • Resolve the problem. 
  • Reactive (wait until it breaks, then fix it) 
    • Monitor active instance. 
    • Tune issues as needed.


Tuning during the life cycle involves two courses of action: proactive tuning or reactive. During the design, development, and testing phases tuning is mostly proactive; that is, scenarios and test cases are designed and tested. The results are measured and compared against other configurations. In the deployment and production environments, the tuning is mostly reactive. The need for hypothetical loads is removed as actual users and workloads are created, but the ability to anticipate problems also diminishes. You can monitor the database instance to observe changes and trends in performance metrics. From the information you gather by monitoring, you may be able to mitigate performance issues before they are noticed by users. 

The DBA may be involved in tuning from the earliest stages of design and development. It is less expensive to correct bugs and performance problems early in the life cycle than later. The differences in tuning the later phases of the life cycle are primarily in what is allowed. Many DBAs in a production environment are not allowed to change the SQL or data structures. However, a design change to improve performance may warrant a change request to the application vendor or development team.

No comments:

Post a Comment