I read a lot of technical books – stuff on SQL Server, VMware, storage – and they all start to blend together. Within the first few pages of reading SQL Server Interview Questions and Answers by Pinal Dave and Vinod Kumar, though, it jumped out and grabbed me because it’s really different.
When buying this book, you need to appreciate it for what it is: a series of questions and answers. No more, no less.
There’s almost no code, no syntax – and believe it or not, that’s refreshing. It’s just plain English dialog. That’s not to say the book is shallow, either, because it touches on topics that all of us could stand a refresher on. This book works really well for its purpose in much the same way that Applied Architecture Patterns works; it doesn’t teach you as much as it just exposes you to subjects. From there, it’s up to you to follow the trail if you’re interested in the topic, and that’s where Pinal and Vinod break new ground.
Check out this quote from page 50:
“What is a filtered index? A filtered index is used to index a portion of the rows in a table. This means it applies a filter on an INDEX which improves query performance, reduces index maintenance costs, and reduces index storage costs when compared with full-table indices. When we see an index created with a WHERE clause, then that is actually a Filtered Index. (Read more here http://bit.ly/sqlinterview27)”
The “read more here” part is actually in the book, and it links to one of Pinal’s intro posts about filtered indexes. Just like all of Pinal’s posts, it includes clear, easy-to-follow script examples and screenshots. Having said that, if you don’t like Pinal’s blog, you’re probably not going to like the book either. The book has less technical details than the blog, and there are grammatical/editing issues. That kind of thing doesn’t bother me as much with this book because of its intended market – it’s just a series of questions and answers.
Will The Answers Help or Hurt the Interview Process?
In my DBA interview questions and SQL developer interview questions blog posts, I went out of my way not to include the answers. I wanted to give managers some starting points for questions that they could use to filter out candidates, but I didn’t want to give unqualified candidates a leg up in the interview process. Those blog posts are consistently popular in Google searches, but based on the search terms being used, I know the candidates are looking for ways to cheat the interview process. Therefore, my first concern going into this book was, “Are unqualified candidates going to sneak into jobs by reading this book?”
I don’t think that’s going to be a problem because the book is more of a refresher than a cheat sheet. As I read the questions, I found myself nodding and saying, “Yep, that’s a great way to answer that question, but if somebody doesn’t understand the underlying concepts, they’re still going to fail the interview as soon as somebody drills down.” An interviewer can see past the fakers just by asking, “And how have you used that concept in your work?” The book also doesn’t stand alone as a complete interview process: managers still need to ask candidates to whiteboard concepts or reverse engineer a stored procedure to see what it’s doing. Frankly, if somebody walked into an interview with this book memorized start to finish, and they didn’t have any other skills whatsoever, they’d still be more qualified than a lot of candidates I’ve interviewed.
My second concern about the book was that an incorrect or poorly-worded answer might cause a good candidate to miss out on a job. If a non-SQL-savvy manager asked questions verbatim out of this book and expected verbatim answers, the book could lead to problems. Some of the book’s answers are open to interpretation – for example, on page 41, the book asks, “What is OLTP?” The book’s answer doesn’t match with what I would give, nor with Wikipedia’s definition. Some of the answers are more clear-cut, though, like when page 54 says there’s a limit of 256 tables per query, and that’s wrong. I’d recommend keeping the book’s online errata handy.
I get really nervous about the thought of a manager relying on this book’s answers as their only gauge of a candidate’s knowledge. However, I’ve been through interviews like that myself – having a disagreement with a manager about the answer to a particular topic – and that’s a place that should be inside every DBA’s comfort zone. We work with developers, project managers, and end users who have all kinds of incorrect assumptions about technology, and they’ve got books or blog posts to back up those assumptions. We have to be able to back up our own answers, and sometimes that means saying to a manager, “We both believe we’re right – can you pop open a search engine and let’s check the latest documentation on SQL Server from Microsoft itself?”
Is This Book Just for Job Candidates?
I also bet that any of my readers will learn at least one thing reading this book, and it’ll drive you to go dive deeper into a particular topic. I’d already learned something by page 34 when the book covers the order of the logical query processing phases: FROM, ON, OUTER, WHERE, GROUP BY, CUBE | ROLLUP, HAVING, SELECT, DISTINCT, ORDER BY, TOP. I read that and a little light went on above my head – I’ve seen this kind of thing before, but I hadn’t thought about it in years, and it inspired me to go hit Google and learn more about the phases again.
The funny part about this book is that I like all of the questions, most of the answers for accuracy, and the rest for provoking thought. I know that wasn’t the original intent, and it’s a hilarious thing for me to write in a book review, but there it is.
This book is a good starting point for MCITP test-takers, too. The questions give you an idea of your qualifications because when an answer doesn’t feel natural to you, you can go drill down into the web to learn more about the topic. If a topic feels like a no-brainer to you, then you probably shouldn’t waste time studying MCITP information about that topic either.