I've had a number of people tell me over the years that they aren't surprised when I say "Recommended" at the end of any book review I write, as I never seem to say "Not Recommended". I suppose that comes under the heading of "if you can't say anything good about something, don't say anything". So, I'm going to temporarily change tack with this book.
For a long time, I've wished there were more books tackling the thorny topic of refactoring databases. Most people would consider Scott Ambler's book to be a seminal work in this area but while I loved the fact that he wrote on the topic, I found the methods he used to be way too generic for SQL Server developers and DBAs. For example, where persisted calculated columns could be used, Scott would use triggers. I'd been eagerly awaiting any other books in this area.
Breaking with another tradition where I normally only purchase books that friends and colleagues have recommended, I followed the Amazon data mining advice when it suggested another up-coming book that I might like. Refactoring SQL Applications by Stephane Faroult and Pascal L'Hermite sounded just like what I'd been looking for and I even pre-ordered it.
I really found reading this book uncomfortable. Stephane has tried to write a book that covers multiple database engines, not just SQL Server but that's again where I suspect the problem began. Even though SQL Server is discussed throughout the book, I'm guessing that Stephane is more comfortable with Oracle than with SQL Server. I found myself cringing many times while reading it. In particular, I found advice such as "indexes are more often superfluous than missing" extraordinary. Reading the logic that supported these arguments felt like watching a train wreck in slow motion. I could see where it was going; it wasn't going the right way and it was too late to stop it. What this typically involved was Stephane creating indexes that weren't good indexes for the query at hand, then deciding that because of that, that indexing itself wasn't that useful.
I'm still looking for a great book for SQL Server developers and DBAs in this area.
Not recommended for SQL Server users! (I'm not able to comment sufficiently authoritatively for Oracle users)