The Problem Statement

September 8, 2009 · Posted in SQL Server · Comments 

toilet Imagine walking into your bathroom to foulest, funkiest, horrendous smell. I mean the air is green. It looks like something died in the toilet…. a week ago! You get straight to work with the air freshener, comet and toilet scrubber. After scrubbing, you flush and the funk overflows everywhere? What the..? We were solving for the wrong problem. If we could have correctly identified the problem as a clogged toilet, we could have done what we needed to solve the real problem.

This principle is just as important when troubleshooting problems in the database world. Fixing the wrong problem can also cause the funk to explode.  You may think that getting the problem statement is an obvious and trivial task. Sometimes it is staring you in the face. Sometimes, it is harder. Here are some scenarios that make it difficult.

Troubleshooting Derailment Factors

Being told what the problem is – Imagine a dev or business analyst telling you there is a data problem. They say there are duplicates rows. However, it is really their query. Business rules allows for dups. If you don’t identify the query as the problem, you could burn time or worse, “clean up” the dups.

Identifying a symptom as the problem – Let’s say that your cluster keeps failing over periodically. You do some troubleshooting and find out it is because of SQL agent. You think it an easy fix and you set it to not affect the group. However, now the agent fails and stays down all night. The business critical ETL did not run. Come to find out that the real problem was a flapping disk that the agent log file was on.

Being under the gun – When the database is down, sometimes it can be hard to step back and identify the problem when all you are focused on is getting it up. This can be dangerous. What if you have database come up suspect? While hastily trying “things” to get the server up, you try to detach\attach it. Now what?

The Power of the Problem Statement
By identifying the right problem, you can focus in on the possible solutions and use your knowledge and resources to pick and implement the best solution as fast as possible. This can save us from go down tangents, fixing stuff that does not need to be fixed or making a bad situation worse.