Blog Post

The Best vs. The Good Enough

,

When you ask a question on the forums, you'll often get responses that certain ways of doing things are inefficient or that you should be doing things a different way.  While that is true, there's a flip side to this.  In a perfect world, you would always do things the most efficient way regardless of the cost.  In the real world, you've got a lot of things to do and not always enough time to do them in.  Compromises, unfortunately, must be made.  Sometimes you go ahead and use that cursor or while loop on a report that only gets run once a month to save yourself from coming up with a much more complicated set based method.  Sometimes you use a temp table you could have done without.  What needs to be done to keep things moving isn't always the best solution, but it is often the best solution that you have time for.

For most people, this is where that extra effort will come in.  While you might have to make the compromise to get things done, knowing how to implement it the more efficient way (or exploring other options after the fact) should also be a priority.  Maybe you have to spend some time out of the office working with it, doing some reading etc, but then next time the better method might be more realistic because they've already done the research.  Making a decision with full knowledge of your alternatives to use the much quicker to implement (but slightly worse performing) option is perfectly acceptable in my book and completely different than just blindly implementing things because you know how to do it one way and don't feel like learning any other ways of doing it.

SQL Server is such a broad area that even the people at Microsoft working on it could probably walk out of the query optimizer room and into the indexing room and learn things.  Think about that for a moment.  The people writing the software (with many years of experience) can still learn things just by walking into the next room and asking a co-worker.  (OK, there probably isn't actually a Query Optimizer Room, but how cool would it be if there was.  I wonder if they'd have execution plan wallpaper.)

You're probably never going to know everything about SQL Server, but if the only time you ever devote to learning more is based on the problems you encounter in your day Job, then in my opinion you will always be limited.  Don't get me wrong, you will very often be required to learn new things to do your job, but if that is all you do, you will always be reacting instead of being proactive.  Spending time reading Forums, Technical Blogs, books or participating in things like T-SQL Challenges will help you expand that knowledge to new areas that you probably could have been applying the whole time if you had known about them.  Of course, if you're reading this, you're probably already aware of all of that... but C'est la vie.

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating