Common questions asked in SQL Server DBA Interview

  • Two bits

    I like to throw in some good code and bad code samples. You pick out which one works better and tell me why. Or I will just give them some bad code and have them fix it. Amazing how efficient this is at separating the talent.

    I also like to ask about set based v RBAR (thx Jeff Moden) to see if they understand the concept of using batches in SQL.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • A good one, which maybe is no so technical πŸ˜‰ ... why are you leaving your current job? ... is tricky, is you say "salary" could lead you to trouble, like they will think you're not Loyal or money is more important than the job itself (of course, we all work for money but still) ... if you say salary was ok, they will re-ask "then why you are leaving your company" .... what I usually say (when I was looking for job) is, "I am looking for new challenges and looks like your company can provide that to me"

    JUst my 2 cents πŸ™‚

  • jason brimhall (6/18/2009)


    Two bits

    I like to throw in some good code and bad code samples. You pick out which one works better and tell me why. Or I will just give them some bad code and have them fix it. Amazing how efficient this is at separating the talent.

    I also like to ask about set based v RBAR (thx Jeff Moden) to see if they understand the concept of using batches in SQL.

    Depends if you are employing a production DBA or a development DBA, one DBA said to me once that all DBAs should be developers but in my experience the worst production DBAs are developers who are having a go at being a DBA but this is another discussion.

    I've been a production DBA of many years, I've got an MCITP, I'm very proficient at what I do, I'm not an expert as no one is an expert (If you call yourself an expert you're obviously not as there is always more to learn which is another good subject for an interview question), I do some coding for the maintenance of the server and the odd bit of troubleshooting but if at an interview for a DBA role and I was presented with two pieces of code I think I'd turn the job down and explain that they were looking for a developer.

    The interview should ideally be a practical test where the interviewee should fix a problem on a server coupled with a written exam and some tough interview questions. That's hardly ever the case though!!!

    As the interviewee though you should be asking questions, you should also be interviewing the interviewer, ask them why they work there, ask them what they are looking for in an employee, at the end of the interview ask them if they have any reservations about yourself then you can clear up any misunderstandings, think of ten or so technical questions you can ask them, even write them down and take the questions with you, it shows you have been thinking about the company you might work for, don't ask all of them but ask the relevant ones. You might ask questions and the answers you get might put you off and save you from working from somewhere you won't like, treat the interview as an opertunity for all parties involved.

    The one question I have always wanted to ask is: β€œSince you are obviously unqualified for this job, why do you want it?”

    Answer... 'Why did you ask me for the interview in the first place then?' πŸ™‚

  • Matt Miller (6/18/2009)


    I like your questions Grant. I usually just add in one more, it's actually usually my first (fail is and it's time to call it quits).

    "What is normalization and why is it important?"

    ...amazing how many crickets you hear after that one....

    I don't think I'd ask that on a screening question. I get WAY too many people that really and truly can't explain, don't know, don't understand, even after you point it out, that there is a difference between a block and a deadlock. It makes me more than a bit nuts.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • jason brimhall (6/18/2009)


    Two bits

    I like to throw in some good code and bad code samples. You pick out which one works better and tell me why. Or I will just give them some bad code and have them fix it. Amazing how efficient this is at separating the talent.

    I also like to ask about set based v RBAR (thx Jeff Moden) to see if they understand the concept of using batches in SQL.

    Yeah, I love using a white board to do interviews (after the screening) where I'll put up structures & queries, some good, some bad, and make people walk me through them. Then I'll have them fix the bad stuff (where I put all sorts of odd stuff, it's fun), write their own queries, discuss the engine... I love interviews. I HATE screening before the interviews. We'll screen about 20 people for each one we interview. Legally we're required to ask everyone the same question. So even when someone doesn't have a clue, isn't even remotely qualified, is arguing with us about the answers to the questions or the applicability of the questions (why, oh why, do people think we need to program SQL Server code as if we were going to bounce it to DB2 tomorrow, Sybase next week, Oracle the week after that, and then back to SQL Server for a day or three?), we can't stop asking until we've gone through all 10. Pain doesn't begin to describe it.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • My favorite interview question to ask interviewees is "How to you do a point in time restore for a database in Simple Recovery Mode?"

    Simple question, right? Yet, it stumps so many people, it scares me. Many of them actually don't know the answer and those who do, don't want to tell the truth because they're not confident enough in themselves to "disagree" with someone who is obviously already employeed by the company.

    When they do answer, it's how I know the brave souls who know what they're talking about and who are willing to stick their neck out for what they know is right.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • One I asked once (in an interview for senior position) was how to repair a torn page without losing any data. Anyone want to guess the answer I got?

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Scotch Tape!!!

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • Oh, this is FUNNY. On a whim, to verify I knew the answer to Gail's question, I opened up BOL on my desktop. I wanted to check both the new and old methods, so while checking old, I typed 'DBCC DBRepair' in the index. The page that I get???

    SQL Server 2005 Books Online

    DBCC DBREPAIR (Transact-SQL) Send Feedback

    See Also

    Collapse AllExpand All Language Filter: AllLanguage Filter: MultipleLanguage Filter: Visual BasicLanguage Filter: C#Language Filter: C++Language Filter: J#Language Filter: JScript

    DBCC (Transact-SQL) >

    Visual Basic(Declaration)

    C#

    C++

    J#

    JScript

    Drops a damaged database.

    Important:

    This feature is not available in SQL Server 2005. Use DROP DATABASE instead.

    Even if DBCC DBRepair is reduced or removed functionality, the reference appears to be totally wrong. Unless I'm misremembering what the word "repair" is supposed to mean.

    I'm in hysterics here. I'm cackling so loudly, my boss thinks it's Halloween already. @=)

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • GilaMonster (6/19/2009)


    One I asked once (in an interview for senior position) was how to repair a torn page without losing any data. Anyone want to guess the answer I got?

    I'm going with Duct Tape.

    Everyone knows the right answer is to ritually sacrifice a white, virgin, female, goat and then offer Paul Randall TONS of money to please, please, please, help us.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • I do some coding for the maintenance of the server and the odd bit of troubleshooting but if at an interview for a DBA role and I was presented with two pieces of code I think I'd turn the job down and explain that they were looking for a developer.

    I am 100% agree with your statement! πŸ™‚ ... I do strongly believe that a DBA should not do more than 5% of coding during its daily tasks. The word says it all: "Administrator" ... not developer. What's happening and this is my opinion and personal experience, is that with so many competitors outside, salaries down and so on, companies are looking for a kind of "all around" DBA. I am not a developer and not because I can't or do not have the brain, is just that I don't like it. I am a DBA and I do 99% of DBA tasks on my job, about 1% coding; in fact, my boss or bosses DO NOT want DBAs coding at all... we have application teams who do that.

  • Torn page - I'm using Guerrilla Glue - better than duct tape or superglue - and has many more uses.

    As for the coding questions. A DBA does have a few paths to choose, be it production or development. Many of us know the contention between development and administration. If all I do is look at the production side of things all day and have no clue though how to code - what good am I? I can sit and look at the production aspects of administration and be stumped when some stupid CURSOR is causing deadlocks, high resource contention, etc - or I can quickly find which spid has the Cursor, take a look at it, know that it is bad, find a much better solution to get the desired results, and then show the developer how to do it correctly and then finally go back to the game I was playing. πŸ™‚

    Point is: As a production DBA, the DBA must still be able to review developer code and fix it if it is needing fixed, train the developer how to code in a SQL / set based programming environment better, and make absolutely certain that somebody who has no knowledge that the system exists until it goes down (ie CEOs) doesn't come tapping me on the shoulder because of some poorly written code.

    As for being an expert - depends on the circumstance, environment and scope. Being a know-it-all about SQL server is something different. But if being professional and knowing your environment better than anybody else - that is good enough for being called an expert. So long as you don't become arrogant and keep learning and taking advice from people who may know better.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • point is: As a production DBA, the DBA must still be able to review developer code and fix it if it is needing fixed, train the developer how to code in a SQL / set based programming environment better, and make absolutely certain that somebody who has no knowledge that the system exists until it goes down (ie CEOs) doesn't come tapping me on the shoulder because of some poorly written code.

    Why I'm going to code or fix code? 😎 ... I'm not getting paid for that! That's the developer job. Yes, the DBA should be smart enough to identify the issue, but that's it and that's when the 5% I mentioned comes into play. If we start to fix code or mess with applications, you will end with duplicity of effort and assuming responsibility if something breaks later because the new code you added.

  • Why I'm going to code or fix code? 😎 ... I'm not getting paid for that! That's the developer job. Yes, the DBA should be smart enough to identify the issue, but that's it and that's when the 5% I mentioned comes into play. If we start to fix code or mess with applications, you will end with duplicity of effort and assuming responsibility if something breaks later because the new code you added.

    I totally see your point. The database (data,code,schema) and performance is my responsibility regardless of who coded it. The CEO is not going to go ask a developer what is wrong with the database, and I am not going to point fingers. Contention between developers and DBAs runs a lot smoother when the DBA can pinpoint the issue, identify an appropriate resolution, and work with the development staff to correct the issue. If I tell the developers to fix it, and not provide some input (which trains them and prevents it from happening in the future), then I am not taking ownership of the database that is mine anyway.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • jocampo (6/19/2009)


    Why I'm going to code or fix code? 😎 ... I'm not getting paid for that!

    Not necessarily true. It depends on what type of shop you're in. In my shop, you're both a production DBA & development DBA and you are there to catch problems. So it is entirely possible that you will be getting paid for that. Unless you plan on turning down every job that asks you to take a code test.

    BTW, as far as code tests go, nobody has said how complicated or simple the code is for these tests. If you don't know how to force a stored procedure to exec, or how to write a basic create table statement or do a join the proper way, then why should I hire you? It's not about the percentage of coding work you'll be doing on the job. It's about whether you even have a clue as to how to code T-SQL.

    I know a self-proclaimed "SQL Genius" who uses AND / OR in his WHERE clauses and doesn't count parens and doesn't know how to use a LIKE statement. Example:

    Where (StoreID = 53) and (StoreLocation = 'CA') and (ProductType like 'Bike') or (StoreID = 28) and (StoreLocation = 'CA') and (ProductType = 'Carseat') or (SalesPerson = 'Emily')

    If my interviewee writes code like this example, I know he or she is not an experienced DBA. Simple as that.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

Viewing 15 posts - 16 through 30 (of 112 total)

You must be logged in to reply to this topic. Login to reply