Jogging is my exercise. I use it to tune out noise, focus on a problem at hand, avoid interruptions, and stay healthy. Recently, I was cruising at a comfortable nine-minute pace when I was passed by four elite runners, and it was like I was standing still. It got me thinking along the lines of health versus performance and how they are related. I came to the conclusion that they are related, but more like distant cousins than siblings.
I can provide you data that indicates health status: blood pressure, resting heart rate, BMI, percentage of body fat, current illnesses, etc. Given all that, tell me. Can I run a four-minute mile? That question can’t be answered with the data I provided. That’s because I’m now talking about performance versus health.
As it relates to databases, we can look at health metrics: CPU utilization, I/O stats, memory pressure, et al. However, those also can’t answer the question of how your databases and queries are performing. I’d argue that both health AND performance monitoring and analysis are important and can impact each other, but they really do answer different questions.
Health is a very mature topic and pretty much all database monitoring solutions offer this visibility. Performance is another story. I love this definition of performance from Craig Mullins as it relates to databases – “the optimization of resource use to increase throughput and minimize contention, enabling the largest possible workload to be processed.” Interestingly, I believe this definition would be widely accepted, yet approaches to achieving this with monitoring tools varies widely. While I agree with this definition, I’d add “in the shortest possible time” to the end of the definition. If you agree that a time component needs to be considered with regards to database performance, now we’re talking about wait-time analysis. Here’s a white paper that goes into much more detail on this approach and why it is the correct way to think about performance.
Stop chasing red herrings and stop resolving symptoms. Get to the root cause of database performance issues using the right approach.
For more on this topic, check out my webcast recording- Database Performance on Tap. Feel free to comment below with your thoughts, questions, or ideas for my next webcast!