Here’s what I’ve been reading lately on the SQL Server front. I’d like to thank all three authors and publishers for providing these books for review.
Securing SQL Server by Denny Cherry
Paperback – Kindle
Denny’s a jack of all trades, and a Microsoft Certified Master of SQL Server to boot. I’ve had the pleasure of knowing Denny for a few years, and he’s on the short list of people who I’d trust with my server password list. (I wouldn’t trust him with my laptop password, though, because he’s got a wicked sense of humor.) When Denny first told me he was writing a security book by himself, I asked him why – it seemed like such a dry topic. Amazingly, Denny was able to bring this material to life in a friendly, readable way.
It’s easy to recommend this book for companies that store financial, medical, or personally identifiable data in their databases, but going beyond that, I think every company with a multi-DBA team should have a copy of this book on their bookshelf. A lot of my clients ask questions that are answered well in this book, and this book is way cheaper than a HIPAA/PCI/SOX audit.
If you’re a solo DBA at a shop, I probably wouldn’t recommend this book, though. The topics covered in this book take time to implement, and they’re usually beyond the scope of what a single person has the time to do when they’re firefighting. Yes, I wish all our databases were secure, but solo DBAs probably need to start with more basic security concepts such as how to configure service accounts, and that’s not covered here. This focuses on senior DBA level knowledge.
Troubleshooting SQL Server by Jonathan Kehayias and Ted Kreuger
Jonathan and Ted are forum monsters: they’re constantly patrolling user questions looking for ways they can help. As a result, they’re well-versed in the typical problems DBAs face and the best ways to solve those problems. They’ve compiled the results into a book. The book reads like a very polished forum answer: if you’ve got a CPU problem, turn to Chapter 3. You’ll learn what tools to use to diagnose the issue, the most common problems, and the best solutions.
Jonathan was one of the coauthors on Professional SQL Server 2008 Internals and Troubleshooting (Paperback – Kindle), and at first glance, it might sound like those two books are similar. This book is different because it takes a problem-and-solution approach, whereas our Pro 2008 Internals teaches the reader about internals first, then explains troubleshooting tools you can use to look under the hood. I’d say that Troubleshooting SQL Server is a faster approach to getting ‘er done, and I’m adding it to my list of recommended books for SQL Server DBAs.
SQL Server 2008 R2 Administration Cookbook by Satya Shyam K Jayanty
Paperback – Kindle
Lemme just start out by saying that I don’t like posting negative reviews. I first received a review copy of this, marked it up, and emailed the publisher and author with a list of questions. Despite a long dialog, I never got answers to the technical issues, so I tossed the book in the closet. I wouldn’t have posted this review, but I noticed a disturbing number of five-star reviews for the book on Amazon. It wouldn’t be fair for me to let people spend their money on this, because by buying it and following the advice, they’re hurting their SQL Servers.
Here’s a few examples of the advice:
- P335 – in a section on designing maintenance tasks in a mission-critical environment, the reader is instructed to check maintenance plans for reorganize indexes, rebuild indexes, and update statistics. This is the worst approach possible for a mission-critical environment: it will do all three tasks against every index in the database, every time. If we absolutely had to use this approach, we could accomplish the same thing by simply rebuilding all indexes, but again, even that is a bad idea in a mission-critical environment. It even tells the reader to create separate schedules, but doesn’t say how or when these tasks should run.
- P361 – “Place transaction logs on RAID5 rather than RAID1+0 for sequential workloads.” Not true, as Microsoft documented in Table1A of this doc.
- P360 – in a section on building a scalable server: “…edition-wise it must be either DataCenter or Enterprise edition to host production data.” What, Standard isn’t good enough for production?
- P70 – in the wait stats troubleshooting query, useless wait stats aren’t filtered out. The example screenshot shows that the server is bottlenecked by SQLTRACE_INCREMENTAL_FLUSH_SLEEP, XE_TIMER_EVENT, and FT_IFTS_SCHEDULER_IDLE_WAIT, none of which are wait events that a DBA should spend time investigating. Contrast this with the well-thought-out, production-tested queries in Troubleshooting SQL Server, and it’s pretty disappointing.
- P360 – “Configure the storage and memory L2 cache per CPU has a minimum of 2 MB to improve memory.” There are so many grammatical and technical errors here I don’t even know where to begin.
To top it all off, many of the book’s sample queries simply don’t work – keywords are mashed together with no spacing, like page 69’s “SELECTTOP” and “CROSSAPPLYsys”. Ouch.
Needless to say, I don’t recommend adding this book to your collection, but if you’re itching for holiday reading, check out my recommended SQL Server book list.
Um, Brent. I’ll refer you to chapter 9. The first section of that chapter is all about what rights the SQL Accounts need and how to change the account that the SQL Server runs under.
That’s true, but it doesn’t go into the depth I’d want. The question that everybody always asks is, “Should I use one account per service on each server, or one account per server, or one account overall?” That’s not covered in 9, is it?
Ah, ok. No I don’t cover that. I’ll add it to my list of stuff to cover more in the next edition.
I wish that my books had such good reviews as Satya Shyam K Jayanty got on both Amazon.com and Amazon.co.uk for his ‘SQL Server 2008 R2 Administration Cookbook’. Some of these reviewers liked it so much they even even took the trouble to pen their first review on Amazon, and another one so loves the breed that he just reviews books by that particular publisher.
Thanks..for these reviews Brent..definitely adding Troubleshooting SQL Server by Jonathan Kehayias and Ted Kreuger to my queue after I am done with this 1300 page Oracle book I am currently reading
Based on your initial review the errata has been produced to the publisher, I shall forward you the link.
Readers – just so it’s clear, Satya has submitted a list of errors to the publisher. He’s now waiting on the publisher to make that list public, and once it’s public, we’ll link to it as part of the review.
Thanks for this review Brent.I am currently reading ‘Troubleshooting SQL Server by Jonathan Kehayias and Ted Kreuger’ and I feel it’s a must read for anyone who deals with SQL Server, from masters to beginners.
Hi Brent, Denny,
I think our company is also asking this infamous question “Should I use one account per service on each server”. Although its M$ best practice, but from on Windows 2008 onward, there’s this per-service SID mechanism introduced.
We’ve currently implemented per account per service. Yes, thats each service account for single SQL deployment i.e. 3 accounts for SQL, AS, SQLAgent per deployment. We’ve got hundreds of SQL instances.
It’ll be good to know good and best practice.
Simon – yes, using one account per service per server is best practice, but most companies cut corners and do one account per server.
Thanks for the confirmation Brent. At least we know we’re doing the right thing albeit the administration is not easy.
I’m new to the sys admin world and have detected some performance issues on a database. I’m looking to gain a better understanding of how to troubleshoot so I’m thinking of buying “Troubleshooting SQL Server” by Jonathan Kehayias and Ted Kreuger.
Would you still recommend this book or are there newer versions that would be better for the most current version of SQL.
Sure, start there. Enjoy!