5 Benefits of Application Database Performance Management
In this article I'll show you some of the benefits that Application Database Performance Management (ADPM) could bring to your organization and why you should stop ignoring your database's performance and start creating a culture of continuous monitoring and optimization.
You shouldn’t treat your database as a black box executing queries.
Your team will have the ability to correlate application’s queries with database performance and easily discover bottlenecks.
Most of the performance problems — experts say that around 80% of them — happen in the communication between the application and the database. The queries that your app is sending to your database can be the root of your problems.
According to Joe Celko, a database expert, the main performance problem in the huge majority of the database applications it is not the lack of hardware, the network traffic nor slow front ends, but the "bad SQL code". This means that by knowing which those bad commands are you'll be in a good position to optimize them and improve the whole environment's performance.
Cross-application performance monitoring for shared database resources.
In so many organizations it is common to have database resources shared by multiple applications — specially in the Enterprises — and when there is a performance incident it's really hard to know which of those applications is compromising the database and consequently the other apps sharing the same resource.
In order to offer this cross-app view, whatever "APM" software you’re using must address the monitoring distinctly from most of tools in the market that are focused in the application layer.
From a database's perspective it's easy to find out which queries are consuming most of the resources and most importantly where they are coming from. In possession of this data your DevOps team will have a global view of each actor that uses your database resources and be able to fix them, avoid potential problems and identify optimization opportunities.
Infrastructure cost savings.
Let's assume that you are using a "small machine" in your cloud provider and everything looks fine and running smoothly. Then somehow your application's performance starts to degrade. The simplest solution (and most common) is to upgrade to a "bigger machine" and your performance might be back again.
This happens for multiple reasons such as too many issues to be solved by a small team in a short period of time, the lack of information the IT teams need to face their challenges, etc, but next time a similar problem happens, your team will do that again and upgrade the database instance. After that you will might have tripled your database instance costs and you only masked the real problem.
At Nazar, we like to call that approach "Throwing Machine at the Problem". A x.large is not enough? Let's put a 4x.large then!
Everyone knows this is not the correct action to take, your costs will increase significantly and yet you won't be fixing the real cause of the problem.
Here you can see an example of that.
Are you “throwing machines” at your performance problems?
In order to avoid that you need to identify the real cause of your issues. By knowing it you'll be able to fix and maximize the use of your current computing power while reducing the overall infrastructure cost.
So before hiring more machine power again make sure that you have the tools to go deep in the understanding of how the application is using the database resources and you'll not regret.
Identify changes in the behavior of your app’s performance before it becomes a critical issue. Anticipate your customers complaints.
As you can see in the image above continuous monitoring is the secret weapon to avoid unexpected problems to become huge. Once your database is being monitored 24 hours per day your team has a footprint of its behavior throughout the time.
This way they will notice when some metrics change because of a new feature that has been deployed the day before or a new campaign was released increasing the traffic in your application. The sooner a change of standard is noticed the better for the teams to take action and stay tuned.
Reduce cross-team friction.
Give fast feedback on how apps are performing and avoid communication gaps among Dev, Ops and/or DBAs.
Knowing the root cause of your application performance issues simplifies the communication and consequently the collaboration among teams involved. In most of the organizations there is a communication gap between Developers and DBAs. If you haven't noticed that yet in your organization. When a problem comes up and nobody knows the root cause of it, this gap becomes clear.
Developers say their application is fine but DBAs are 100% sure that the database is OK as well. So what? Who is responsible for fixing the problem? The answer to that is to give them the power to understand the real causes of the problems and collaborate to solve them.
This friction doesn't exist when everyone has access to the information. Transparency is a key factor for efficiency.
Key Takeaways:
- Stop treating your database as black box simply executing SQL commands;
- Make sure the infrastructure monitoring tool you are using offers a database perspective (ADPM);
- Avoid throwing machines at your performance problems (save time and money!);
- Eliminate the friction between your teams and help them to collaborate;
By monitoring your application from a new perspective I can assure you that you’ll benefit your organization by saving time and resources, avoiding future problems and keeping your apps running fast.