Database Performance Certainty
It is all about an IT need and a business expectation.
Most IT professionals want as little change as possible. After all, at the end of the day, the ultimate responsibility is to make sure applications run, and run well. Less change usually equals more stability. The mantra usually goes, “If it’s not broken, why mess with it?”
However, life for database administrators (DBAs) is rife with change these days, whether they want it or not, including major evolutions that impact every IT department. With so many changes and variables, the old way of figuring things out — trial and error — no longer works. What DBAs and all IT professionals need, and what the business expects from IT, is performance certainty.
Key Changes Impacting DBAs and Databases
Virtualization and cloud
For years, DBAs resisted moving to virtualized environments because the uncertainty surrounding how a database server would perform on a virtual machine (VM). There was no performance certainty. But today, 80% of databases are running in virtual environments. And now that they’re in dynamic environments in the cloud, performance can change at any time: Got a noisy neighbor? An administrator can move the database to another VM, and so on.
Evolution of storage
Storage systems are on the move: flash, compression, hyper-converged systems, and intelligent storage, which does hot/cold tiering (software will dynamically change the underlying storage system based on observed behavior), are all growing in implementation.
Push toward continuous development
Continuous development — which means application code is changing all the time, sometimes multiple times a day — is becoming ever more common, driven in part by the adoption of DevOps culture. These changes are on top of everything that can and will change in the database itself.
Direct correlation between performance and cost
As these and other key changes lead toward a software-defined, dynamic environment, there is one more new consideration: the direct correlation between performance and cost, which becomes more evident in pay-as-you-go cloud environments. Lower performance usually results in provisioning more hardware, or faster hardware, which results in a higher cost.
Achieving Performance Certainty
So, how does the DBA achieve performance certainty in today’s ever-changing technology landscape? Here are a few ideas:
Adopt performance as a discipline.
Uptime is no longer the key metric for how one measures quality of work; instead, uptime is assumed. Performance and enduser experience are the new goals. The questions should become: how fast can we make the system work? How often do the teams talk about performance? What tools do we have to understand and improve performance? It’s about being proactive.
Adopt a wait-time analysis mindset.
Focus must shift from simple resource metrics to time — the time spent on every process, query, wait state and contribution to time from storage (I/O and latency), networking, and other components supporting the database and the application. The fundamental methodology to understand database performance is wait-time analysis.
Establish benchmarks and baselines.
It’s important to define the key metrics to observe, which should ideally be application-, enduser-, and throughput-centric. Statistical baselines help one understand what is normal and how/when performance changes. Alerts based on baselines, which are based on relevant metrics, allow the DBA to focus on what matters. Tools that allow you to look back in time and compare performance become extremely useful.
Understand the performance contribution of each component.
Before moving to faster hardware or provisioning more resources, one must understand the performance contribution of each component and each step the database takes in responding to a query, which will show their potential contribution to performance improvement.
Become the performance guru.
Knowledge is power. With the shift in IT towards performance, one who better understands performance, what drives it, and how to improve it, quickly becomes more valuable to the organization.
Return and report.
DBAs should report on performance weekly or monthly, and take credit for performance improvements and costs savings resulting from reclaimed hardware or delayed investments. They should report the performance impact and improvement (or not) of each infrastructure component.
Plan performance changes.
A DBA will know when they have achieved performance certainty and when they have become a performance guru when they can accurately predict application performance before changes occur, and when they can guide their organization towards better performance.
Today, regardless of the role within IT, it’s all about the applications. This is especially true for DBAs, who must be proactive when it comes to performance. Performance certainty — when you know how a system will perform and how to improve it — will very soon become a job requirement.