If you are one of those people (like me) who wonder why Sql Server does certain things (like ignoring your well-planned-out index), or if your professional pride requires that you deploy sql code which other professionals cannot laugh at, then you *must* understand the basic details of the SS Query Optimizer. This book is thin, omits all of the traditional 'fluff' abstractions, and delivers the details through 'work-along-side-me' examples. The author is not-so-much writing a book as training a 'junior' administrator on how to understand queries and their execution. It is a streamlined training session on one specific topic, and can be consumed (and digested) in a few sit-down sessions. The level of detail is much finer than any introductory book on Sql administration (or programming), but does not try to match the atomicity of Delaney's "Inside Microsoft Sql Server 2005" series. (Delaney's books are excellent academic achievements which will make you dizzy, lightheaded (possibly nauseous) at the first reading.) I read Fritchey's book on a Friday evening, and spent the weekend working the examples on my own system. By Monday I was comfortable with troubleshooting many weak t-sql queries at the office, and it gave me the experience I needed to start practicing on creating 'useful' indexes. This book gives a very good explanation on the topic of 'selectivity', which is the single most important principle of indexing in Sql Server. The book is a good way to 'get your feet wet' with using Sql Profiler (rather than waiting until serious issues require you to learn on-the-job). The book is a required follow-up book to the 70-444 (Self Based Training Kit) for Sql Server 2005 DBA certification. I got 2 answers correct because Fritchey's book taught me something the 70-444 SBTK forgot to explain. This book is also available as an e-book (which I also have) but I suggest getting the paperback version because you will want to flip back pages to compare examples ... something aggrevating to do with an e-book. COMPLAINTS: 1. The editors should be shot! There are spelling errors, missing letters, and punctuation goofs in several paragraphs causing you to stop, rewind and procede again to get Fritchey's point. The proofreaders let the author down on this one. 2. The book says examples are available on a website, but I could not find them there (possibly I am to stupid to locate them).
I have to start out by saying...finally! As a .NET developer, I am always personally interested in stretching my limits and perfecting my craft. Although there may be a handful of applications that don't require data access, I've never witnessed any that weren't trivial. I work with SQL Server professionally and personally. I've looked at execution plans for a little while and when I really paid attention to them (in SQL 2005), I couldn't believe the potential for correcting bad mistakes. The trouble came when I couldn't find any texts on SQL Server that really made more than a passing reference to execution plans. I set out anew to find something definitive and the timing was right.
Mr. Fritchey's work has demystified so many of the fine points of why SQL Server develops one plan over another. There were more than a few operators that I didn't fully grasp and this reference has finally shed light on those operators. If you've ever wondered what those plans were all about then this text will explain in detail each operator in sample plans generated from sample queries, both simple and complex. Don't worry that you'll dive right into complex selections that look as if they are part of a disgruntled programmer's plot of obfuscation. Mr. Fritchey has chosen to sensibly start with simple queries and explains the plan results. Then he moves into slight query modifications and explains how and why the new plan differs. Eventually, query selections grow in complexity one layer at a time and the plan explanations keep right up in a logical manner. You'll be able to see the results for yourself in the book but I recommend performing the same SQL queries on your own instance to get the best view. The examples are performed on a version of Microsoft's AdventureWorks database, so you need not worry about getting access to those databases as they are provided freely as you likely already know. I've waited a long time for a book to address this niche within SQL Server's great depth and I am pleased with my luck in finding this book! When a book focuses on a specific aspect of a huge technological space, it can make for a great opportunity to learn product features deeply and SQL Server Execution Plans fits this bill.
The book is not large and doesn't weight as much as a small blue whale. That fact is attractive unto itself given the disturbing trend of killing as many trees as possible. Hopefully digital editions will mitigate this trend. I really only gave the book 4 stars because of the publisher's lack of attention to detail and standards. Mr. Fritchey's content is fantastic but the quality of the book itself leaves much to be desired. Many of the figures and insets of execution plans are too small to be useful, thus my recommendation of running the queries along with your reading. Since this is one of the only texts to address the subject matter in serious detail, I think the publisher could have made a much better showing. Irrespective of the book's physical qualities, the content is ultimately useful and approachable to boot!
This book was an easy read on a subject that can be relatively intimidating for a developer with no experience in the area. It is a great introduction to learning how to read SQL Server Execution Plans. There are lots of good examples and screen shots describing how the server is interpreting the commands being executed.
However, one should note that the book is NOT about how the plans will help you to improve your queries. Instead, knowing how to read through the various execution plans will help the reader to understand where problems might exist.
It is well written, and explain clearly what you need to know (the semantics) of the symbols and icons which appear in the graphic execution plans. It shows the relations between the execution plans and statistics. It talk about hints, when they help and when they hurt. It also shows several operational tricks about working with execution plans.
Every dba should have a copy of this. It is a fantastic resource for those deep dive analysis of the query execution plans. I have not see anything else that goes into such detail to explain just how sql is actually getting your data.
I found Grant Fritchey's book on Execution Plans. The information is geared towards SQL Server database professionals and administrators with experience. The book is filled with practical experience and lessons learned, the kind of pragmatic information SQL Server professionals can apply immediately.