What would you do if someone called your baby ugly? How far would you go to rekindle an estranged relationship with your wife, daughter, husband, or son? Have you ever suddenly realized that someone you knew you once loved may not be all that any longer? Sure, you go through the motions, but your heart isn’t in it any longer.
Okay, those are hopefully way more extreme that falling out of love with your database(s). However, the idea is sound – we come into work and interact with databases that are, at the same time, the reason we have jobs and sometimes the bane of our existence. Do other IT professionals point at your database and proverbially call it ugly? Do end-users do the same? Do customers navigate away from your site because it takes too long to load content? Are you the default blame acceptor (DBA)?
Let’s look at some of the reasons people call our babies ugly:
- Poorly written SQL statements (including lack of bind variables or parameterized SQL)
- Incorrect instance configuration/parameters
- Application concurrency contention (blocking due to increased threading)
- Bad data model design (including lack of archiving old data, improper indexing, and incorrect implementation of normalization tailored to purpose)
- Lack of connection pooling (incurs the cost of constant connection spin up/tear down)
- Wrong estimates of volume/requests/transactions
- Poorly specified or implemented infrastructure/resources
- Optimizer making choices that just don’t make sense (or maybe just stale or lack of statistics)
- Questionable logic wrapping requests/transactions
- Rolling external dependencies to the database within a transaction
- Inability to change code due to third party supportability concerns
I’m sure the list could go on, but you get the idea. These are all valid reasons why others might question the beauty of our database(s). If others continually bash our loved ones, we may one day wake up and start to question our own judgment. Their negative feedback might start that wedge between us and our database(s). The wedge grows. We realize our relationship has suffered. We wonder if we even want to continue the relationship. Okay, enough of the sad – time to stop the pity party and start working on repairing this love story!
When it comes to slow database performance, one of the toughest tasks is determining where to start in this target-rich environment (see list again). It may seem insurmountable. It may seem like it’s not worth it. It may seem like there’s no time to go digging into your environment to get to the root cause of the ugliness. I am happy to say that you would be incorrect. Explore best practice methodology for uncovering performance issues using response time analytics to find the true bottlenecks in your database(s). Once you understand the power of this approach, you’ll realize there’s a new and better way to approach database performance than resource consumption. People may still call your baby ugly, but at least now you will know why.
I’d love to hear stories from the wild about frustrations you all have had and what other reasons you’ve experienced for not loving your database any longer. Please comment with those and any other thoughts on this topic. What did you do to fall in love with your database again?