Expert Performance Indexing for SQL Server 2012 is written by Ted Krueger (@onpnt) and Jason Strate (@stratesql) – two guys who I’ve known for a few years now. They’re fun and knowledgeable and if you ever run into them at a conference or on the street you should heckle them relentlessly. It’s fun.
I got this book as a present to myself after trading in my coin jar for amazon money. If the electronic version hadn’t been less than half of the physical book price I surely would have gotten that instead. With that said, either version of the book is well worth it and this is a reference that I will be using quite a bit in the future.
The first half of the book goes through the basics of indexing: what they are; how you would create, alter or drop them; how they are stored; the differences between clustered, non-clustered, XML, full-text, spatial and column-store indexes; etc. I was a bit surprised at the amount of detail that the authors went into for some of these topics (ex. storage).
The second half of the book is where the book really shines. Particularly the last chapter on index analysis. In this half, there are sections on: common indexing myths and best practices; how you would go about maintaining the indexes and statistics in your environment (you don’t just create them and then forget about them); what tools you can use to determine what indexes are currently working well in your environment, what indexes might work well in your environment if you were to implement them, and what indexes might be redundant; indexing strategies to best cover your workload; strategies for writing queries in order to best ensure that the indexes you have created are used; and the analysis of index statistics, wait statistics, and performance counters in order to help determine what in your environment could best use your attention. One note: The section that is covered in chapter 8 relating to “surrogate keys” should instead be named “natural keys”.
This is by far the most comprehensive look at indexes which I have seen put together in one place to date. I can’t recommend it enough.