Author: Aaron Bertrand et al
Publisher: SQL Sentry
Audience: DBAs and SQL Developers
Reviewer: Ian Stirk
This recently published book has a promising title, but does it live up to the expectation?
I had expected this book to contain discussions and new insights into the common performance problems seen on SQL Server. However, most of the articles relate to smaller, more subtle, and specific problems you might experience during application development.
A wide range of performance related topics are discussed, including:
- Best Approach for Running Totals
- Split Strings the Right Way
- Performance impact of different error handling techniques
- Conditional Order By
- What impact can different cursor types have?
- How much impact can a data type choice have?
- Is the sp_ prefix still a no-no?
- The Halloween Problem
The book seems to be only available for the Kindle. The SQL code is difficult to read on my Kindle due to bad formatting. Code formatting should help you by giving you a visual representation of the flow of the code. The editors should have corrected this. This is ironic since one of the book’s articles talks about people disliking the use of dynamic SQL since it is difficult to read, due to bad formatting.
Another problem is with words running into each other, e.g. CHECKDBoperation, thering_buffer, useEXCEPT etc, making it more difficult to read. Again the editors should have dealt with this.
It consists of articles from SQLPerformance.com, a website that seems to be a by-product of the SQL Sentry company, which produces a range of SQL Server performance products. Indeed, the word ‘Sentry’ is mentioned a lot, 29 times in book. While the company’s tools may be useful, I prefer my advice to be more independent.
The articles seem to have been taken straight from the website, with little or no evidence of editing, I don’t think anything new as been added. Most of the articles are written by Aaron Bertrand (54% on the website), so if you like his approach and style, you’ll enjoy the style of the book and website. I did wonder if several of the ‘big names’ advertised on the cover are there just to promote it, since they each only write a few of the articles, which seems a bit disingenuous.
The styles of the various authors vary, with some being quite chatty and informal and the topics discussed are quite diverse, with very little tying them together. Maybe the editors could have done more to present a more cohesive book.
Some of the articles have the section header “TL;DR version”. I didn’t know what this meant, at first I thought it was a typo. It actually means “Too Long; Didn’t Read”, i.e. summary. Why not just use the word ‘summary’?
Most of the articles give sound advice, especially that all suggestions should be tested for your own workload/system. Many of the assertions given in the text have useful code that can be used to test them.
My favourite articles were:
- Ten Common Threats to Execution Plan Quality
- Trimming the Transaction Log Fat
- Break large delete operations into chunks
There are some useful insights in the book, expanding on ideas many of us have but don’t have the time, resources or inclination to pursue. Most of the articles are interesting, a few are academic or of little routine importance. The date of each article would have been useful, since things change with time. I do wonder if there is actually a need for this book, since all the articles are available on the SQLPerformance.com website, where they are more up to date and contain comments. Also the website has additional articles.
I expected the book to give fresh new insights into major SQL Server performance problems. Instead it largely contains answers to the smaller class of problems you might come across in your development, so for me the book did not live up with its title. The book need much better editing.
Avoid the book, but take a look at the web site.