There is no shortage of great ideas. But often in our enthusiasm, we forget to check how useful our innovation is actually going to be. I dare say that it’s very important to do so.
For example. I was speaking with a lead developer at a company that has a very active application. Their story is typical, really. Their code base grew piecemeal, there was staff turnover, priorities kept shifting, and quality didn’t always make the cut. Now they’re sitting on a pile of technical debt and his manager decided that they need to make a “concentrated effort” to cut it down.
You’re #CuriousAboutData, so read on!
They’re looking for a tool that will analyze their database performance and will give them suggestions as to what to improve. Sound like a plan? Not really — and here’s why:
All automated performance analysis software is limited in its scope of suggestions. You have to start with an optimized database and use this software to keep it in shape.
It’s not going to be able to address usage pattern issues. In many databases we find that a problem may not be a particular query, but the fact that it’s run too many times, or that queries are too complex and result in unpredictable behavior.
Most crucially, this type of solution treats the symptoms but not the problem. Without establishing a coherent design, coding, and usage pattern standard, this troubleshooting effort is a total waste — sort of like a dog chasing its own tail.
What can be done?
Some DBAs will moan about “developers that just don’t get it”, but at BitWise, we’re “communicating DBAs”, so we explain. With lots of patience and attention to detail, we go over three pillars of a healthy database:
Design – make sure that your entities fit your application needs. It’s not always necessary to precisely represent reality. You don’t put real life objects in your database, do you?
Coding Standards – consistency is so important. It’s simple, but elusive. Make an effort and enjoy the results. Coding standards will save the day.
Usage Pattern – understand how you use your database. We get so many questions about best indexes, etc. Invariably, it comes down to the same question – How do you use your data?
At BitWise, we understand this is a lot to chew on, but we wanted to get it in one place so that you can think about it holistically. Want to see more about one of the “pillars” — or anything else, for that matter?
We like people, so feel free to call or write. Humans only.