I was recently asked to review SQL Server Query Tuning and Optimization by Benjamin Nevarez (blog|twitter), and as soon as I saw who had written the book I jumped at the chance.
I want to start this by saying this is a moderately advanced book. The information in it ranges from 300 on up, but I don’t consider that unreasonable for an optimization book. If you haven’t been writing code for a while you won’t really appreciate everything in it. That said, if you are a junior when it comes to your SQL skills, you’ll still get a lot out of this, just make a point of re-reading after you get a bit more experience.
The book started with what for me was a fair amount of review material. How to get execution plans, what’s in them, STATISTICS TIME and IO, trace vs profiler, etc. I have to tell you I loved it. Reviewing the basics is a great way to start building on them and helps firm them up in your memory.
From there Benjamin moved on to collecting information in more detail using DMVs, DMFs, traces, extended events and even covered the data collector. I’ve used the data collector exactly once. It’s not overly popular. So why would Benjamin cover it? Well, I can’t speak for him, but I can tell you in my opinion it really helps to know what’s available in breadth if not in detail. That way if something comes up you know where you can start digging into and aren’t just failing around.
Benjamin also does a fair amount of internals (which is where the 300 and up comes from). He talks about how the optimizer works, different types of operators, statistics, query hints and lots more. I could wish for more information on Query Store but to be fair he does mention that he goes into more detail in his book High-Performance SQL Server.
So over all what do I think over all? Well, let’s just say, that having gotten a free copy of the e-book to review, having read the book, I’m now going to spend money (and I’m really cheap) on buying a hardcopy.