In my commentary, "Are You a Developer or an IT Pro?" I discussed the differences between TechEd 2008 Developers and TechEd 2008 Professionals and talked about whether people who work with SQL Server are mainly developers or IT professionals. IT professional is a term that Microsoft uses to span a wide range of possible job titles. When talking about SQL Server, we typically divide our professionals into developers and DBAs. So what’s really the difference between DBAs and developers? There are probably as many answers to that question as there are SQL Server professionals.
When I teach my SQL Server Internals class, I ask my students what they consider their job role to be. The majority usually considers themselves to be DBAs, but not always. (I’ve occasionally had classes where 10 of the 12 people are database developers.) But without exception, everyone tells me that learning about how SQL Server works will help them do their jobs better (and that’s why they’re taking the class). So obviously there’s some overlap between what a DBA and what a SQL Server developer might need to know.
One of my current projects is developing curriculum for new DBAs. Our goal is to make these DBAs into SQL Server experts; we want them to be the best of the best. So how much SQL Server development information do they need? I found a very interesting set of interview questions that I thought I might be able to use for in-class quizzes. These questions have been put together by SQL Server MVP and blogger Pinal Dave. However, these questions are programming-specific. There are questions about what stored procedures or commands to use for particular tasks and what the different clauses in a SELECT statement mean. Now, maybe the list isn’t finished yet and I’m speaking too soon. The author has been posting new questions every day since the first one. But so far, there haven’t been any “pure” DBA questions, dealing with things such as backup and restore or resource management. And the only security question I could find was regarding authentication mode (Windows versus mixed authentication).
Don’t get me wrong. I’m not knocking Pinal’s great list of questions and answers. I’m just wondering if a DBA really needs to know everything on that list. If I were going to "test" a DBA, I would want to ask questions that all have the same answer, namely, “it depends.” But then of course there would be a follow-up question: “What does it depend on?” These are the kinds of questions that a good DBA should know the answer to and can’t be readily answered by posting on a public newsgroup because the answer really depends on your specific system, your data, your users, etc.
The following are some of the questions I think a rock-solid DBA should be able to address. (I’m not saying a DBA should be able to answer them, especially not in an interview, because there are too many variables associated with each of them.)
- How big should your database be, on how many files or filegroups?
- What kind of high availability solution will work best for you?
- How many different database roles do you need and how can you decide which users should be in each role?
- What configuration settings should be changed, and when?
- How often should you make log backups?
Of course, this list is just the beginning, and there isn’t an easy answer to any of these questions. But finding out what you need to know to start to answer these questions is a good first step.