When non-DBAs think about what it is that a DBA does, performance monitoring and tuning are usually the first tasks that come to mind. This should not be surprising. Almost anyone who has come in contact with a computer has experienced some type of performance problem. Moreover, relational database systems have a notorious reputation (much of it undeserved) for poor performance.
Of course, DBAs do much more than manage the performance of database systems. Let’s take a moment to reflect on what this means. In a past installment of this column (www.dbta.com/Col?umns/DBA-Corner/Defining-Database-Performance-70236.aspx), I defined database performance and that is an important first step. To ensure optimum database performance, you will need a good definition of database performance that you use as the basis for developing a detailed performance plan specific to your shop.
But it is quite common for users to conflate several related, though quite different, database performance-related terms: monitoring, tuning, and management. They are all important, but it is crucial to understand the differences.
Monitoring, Tuning, and Management
Many DBAs attack performance in a reactive manner. A user calls with a response-time problem. A database runs out of space. The batch window extends into the day. The problem has happened and now it needs to be remedied. Such activity is purely reactive.
Even many of the supposedly proactive steps taken against completed production applications might be considered reactive. A change to a completed application that requires code to be rewritten cannot reasonably be considered proactive. A proactive approach would have involved correcting the problem before completing the application.
To achieve the highest efficiency and effectiveness, the goal is to move from reactive to proactive. And that requires enacting policies and procedures, usually with software tools, that can oversee database systems and applications, identifying performance problems, analyzing the cause of those problems, and enacting solutions. Of course, automating as much of this as possible is desirable, but some of the activities are likely to
Performance management consists of three specific components that need to be performed in conjunction with each other: monitoring, analysis, and correction. You can simplify this as Find It, Analyze It, and Fix It.
Monitoring is the process of identifying problems. It has nothing to do with figuring out why there is a problem and building a solution to correct things.
Analysis is the second component of performance management. A monitoring task can generate hundreds or thousands of messages, or reams and reams of paper reports. A monitor collects the pertinent information for making performance tuning and optimization decisions, but it is essentially dumb. A monitor cannot independently make decisions based on the information it has collected. This requires analysis—and analysis typically is performed by a skilled technician such as a DBA. Increasingly, though, AI and machine learning techniques will be utilized to analyze database performance problems.
Optimization—the corrective action—is the third component of performance management. This is also referred to as database tuning.
Database performance management is the combination of all three of these tasks. It can be achieved only by using a proactive performance plan.
With a proper plan, correction of performance problems becomes easier and, indeed, some performance problems can be avoided altogether because a potential problem-causing situation can be corrected before a problem occurs.
The Bottom Line
Applications that access relational databases are only as good as the performance they achieve. The wise organization will implement a comprehensive performance management plan consisting of policies, procedures, integrated monitoring, analysis, and tuning to ensure the efficiency of their database systems and applications. n