I have never been a fan of the answer “it depends”. In fact I often go out of my way to prove that there is more to SQL Server than the answer we hear most often. I realize this is not a limitation of the answerer or the technology but the fact that the question is often not clear enough. The point I am trying to make here is that while there may be multiple solutions to any given problem in MS SQL Server. There is almost always a single best answer. The challenge that we face is how to identify that answer.
As a consultant I have tried to steer clear of giving such a vague answer when the client asks a question because client often think this is a way to blow up the bill. While longtime client now understand the nature of the beast, with new clients it often takes time to convince them that we don’t have enough data to make sure we have identified the actual root cause. SQL is a very complex tool and as a result there are a number of factors that affect its behavior couple this with the fact that often the real problem is at point A and the symptoms show at point Z we often need to spend time analyzing data to make sure we know exactly what the problem is and provide the client with a solution not a work around.
The most common place I see this kind of answer is on forums where the poster doesn’t provide enough details or context on what they are trying to achieve. Guys who are eager to answer immediately shoot off answers based on what they have encountered or answers to frequently posted questions. While this might work for novices who are new to SQL for more senior folks the run of the mill answers are often things they have already tried and didn’t work.
It would help if everybody provided details so that based on those details we can eliminate answers that are not relevant instead of voicing every opinion that comes to our head.
Some of the basic things I like to ask include.
- Have you faced this issue before and if so since when?
- What steps have been taken so far
- Can you reproduce the issue? Even on another environment?
- What’s changed?
- What’s the error message and why do you feel SQL is the reason for it
- Do you have a baseline
- Why did you go with your current approach, was it evaluated properly?
- What restrictions are in place
- Are you looking for a solution or a quick fix?
While the above questions might seem very non-technical these open ended questions allow the poster to provide more details which might prove relevant later on.
Hopefully with the above we can convert a lot of “it Depends” to “it is”.