The book flows quite well and has a nice reference quality to it. It is well laid out into Parts and Chapters which are broken down into nice encompassing topics. There are many exercises in the book that help test your knowledge of what you just read. I, however, did not like that there was no answer section provided to give you the correct answers to these. This would have been a nice addition to the book to make sure you did understand or at least knew what you did catch before.
The author’s goal is to explain how and why SQL does what it does using
various debugging and memory monitoring tools he delves into what API calls SQL
is making and how it is using memory. He provides some C++ and T-SQL examples to
explain and support his information. Covering everything you could possibly
imagine wanting to know about the functionality of SQL as a process and
explaining in a simplified term as much as can be.
The first part entitled “Foundations” sets up much of the basis for the book.
He discusses the WIN32 API set, processor modes (User/Kernel) and the reason for
them, as well as process/threads, memory, input/output, networking, com and XML.
The second part “Subsystems, Components, and Technologies” dives into SQL
itself. Looking under the hood as much as one can he demonstrates why certain
things occur and ways to try and optimize things as much as possible based on
this knowledge.
The third part “Data Services” goes into the various ways you can process or
server out the data. He breaks in XML, Notification Services, DTS and
Replication methods all the while offering helpful suggestions and trying to
break down how each works.
The final part “Undocumented SQL Server” is a nice piece in itself. He shows
you some places to look for the unseen. Unfortunately he doesn’t go into much on
what you may find, that is left up to you (suggest you do on a test system).
Just For Fun
In the last section of the book there is a funny little essay entitled "Pseudo-Techie Tactics 101: How to Make Yourself Appear to Be an Expert via Newsgroup Postings" that anyone will get a kick out of that I just loved. Here were my personal favorites:
1) Answer a different question than what was asked, with lots of superfluous
detail, particularly if the detail is obscure or hard to verify.
12) When an actual expert responds
to a post, be quick to jump on the bandwagon, especially if the post is
regarding a technology in which you have nothing significant to contribute but
would like people to form a general perception of you as having deep skills in
the area. For example, if you want to convince people that you’re a debugging
expert, be quick to jump onto bandwagons regarding symbols server issues and
debugger quirks. Be careful not to offer any substantive information in your
posts; the idea is to create a perception, not to actually add any value or
stick your neck out in any way.
Conclusion
I will say I really, really enjoyed this book. The attached cd is a major plus as it includes a PDF version of the entire book and supporting source code for all the examples. I however do suggest you understand some of the operating and programmatic aspects of Windows and basic CPU operating. Ken attempts quite well to explain much of these, but some understanding will benefit in leaps and bounds.
I would suggest any programmer who works with SQL give this book a look, it might even help in other area of programming where they may find a helpful suggestion or two. The addition of the PDF copy makes it even better as you have it available at your fingertips and quickly searchable. Many DBAs will find there understanding of SQL enhanced and hopeful help with understanding why some issues occur.