I've spent much of the last six years of my working life trying to help people solve SQL
Server-related performance problems, either hands-on, at client sites in my capacity as a
consultant, or on various online community forums, answering people's questions.
Over that time I've been exposed to a few weird and wonderful SQL Server issues but,
mainly, have seen the same problems, and the same confusions, crop up time and again. It
was only a matter of time before I leapt to the foolhardy conclusion that I ought to write
a book to explain what the most common problems were, why they occurred, and to
offer sensible, practical solutions, aimed squarely at removing the root cause of the issue,
rather than simply "papering over the cracks."
It turned out to be a much more daunting task than I imagined, for a number of reasons.
Firstly, this is, by its very nature, a fairly broad-ranging book, covering topics stretching
from CPU issues, to memory management, to missing indexes, and full transaction logs.
Secondly, it is amazing how complex some of the simplest topics become when you try
to put them down in text. Thirdly, technology changes rapidly, and the troubleshooter,
and the advice he or she offers, must adapt accordingly. There were several cases in
the writing of this book, where either a technology change meant I had to go back and
adapt my original advice, or where my own opinion of the content and troubleshooting
methodologies had evolved to the point where certain sections had to be completely
Despite the occasionally bumpy road, what I hope I've achieved is a book that covers
clearly and concisely the most common problems associated with the currently supported
versions of SQL Server, namely SQL Server 2005, 2008, and 2008 R2. The first chapter
explains my basic approach to performance troubleshooting, and the tools I use. It
stresses, in particular, how rare it is that a problem can be diagnosed by looking at just a
single data point.