A Little Interviewing Advice

  • TravisDBA (7/13/2011)


    Eric M Russell (7/13/2011)


    "I don't know the answer to that off the top of my head, but I could easily look it up in MSDN."

    I agree, that this is a good answer for a particular thing you do not know or have not memorized. However, if an interviewer asks you hypothetical questions (I do this all the time) that kind of response is just not enough. For example:.

    "You come in one morning and a user comes to you saying a production SQL Server is not responding, what steps would you do to rectify the situation and in what order?"

    "You get a phone call on Friday afternoon that a production database has unexpectantly gone suspect, what specific steps would you take to address this issue?"

    "A user is complaining that her production report that calls a particular stored procedure on a particular production database is taking over 20 minutes to run. What steps would you do to resolve this?"

    In other words., I want to know how quickly and well a candidate can think on their feet on a daily basis when REAL issues arrive and how keen their problem solving skills are. This is where the wheat is separated from the chaff in my opinon, and how you answer these kind of questions will reflect your REAL experience level every time, at least to me anyway. I am less interested in asking questions that have a particular one word or sentence answer that can either be looked up on the Internet or memorized and just spit out.. 😀

    They're all good questions. The type I'd ask in an interview for very much the same reasons.

  • sturner (7/1/2011)


    Freddie-304292 (7/1/2011)


    Personally I would turn down any company that expected me to work weekends before they were even paying me. Some of us have lives, you know 😉

    Dude... calm down and re-read my post. I was referring to the interview... in response to an earlier comment regarding one's potential inability to take a day off from work to go on a day long interview.

    Unwillingness to make extra time and effort for an interview with a perspective employer who is very interested in hiring the best person may be telling about ones's capabilities and character.

    I've been on day long interviews, and I think they're valuable for both sides, but only if you've gone through some screening and it looks like a good fit.

    I would take vacation to work somewhere for a day or two, but I think it would be a worthwhile investment for a company to pay me, and I'd want compensation if it's more than a 6 hour interview. Large companies certainly pay for travel if you come visit them for an interview, and I'd think it would only be fair to do a "test hire" for a couple days if you felt strongly about a couple candidates. I don't know how the payroll/HR piece would work, but it would be a good way to perform a little more due diligence.

  • I don't think that knowing from memory the syntax for infrequently used T-SQL statements and admin commands is relevent. However, I do expect a candidate to complete the following test correctly. The test is simple enough that it can be sketched out with pencil and paper in a couple of minutes, but it's tricky enough to test their proficiency with a common scenario that involves aggregate queries, outer joins, and datetime datatypes.

    I provide them a sheet of paper that contains the DDL and sample data for two tables, Customer and Customer_Call, and then ask them to write a SQL query that returns the name and phone number for each customer who were NOT called at least 3 times in the month of March 2010.

    create table customer

    (

    customer_id int not null primary key,

    customer_name varchar(120) not null,

    customer_phone varchar(30) not null

    );

    create table customer_call

    (

    primary key ( call_time, customer_id ),

    customer_id int not null,

    call_time smalldatetime not null

    );

    insert into customer ( customer_id, customer_name, customer_phone )

    select 1, 'John Smith', '555-555-001' union all

    select 2, 'Deb Black', '555-555-002' union all

    select 3, 'Luke Fish', '555-555-003' union all

    select 4, 'Phil Baker', '555-555-004' union all

    select 5, 'Jane Cook', '555-555-005';

    insert into customer_call ( customer_id, call_time )

    select 4, '2010-02-28 03:30PM' union all

    select 1, '2010-03-01 02:20PM' union all

    select 1, '2010-03-02 09:52AM' union all

    select 4, '2010-03-02 04:05PM' union all

    select 4, '2010-03-15 09:12AM' union all

    select 1, '2010-03-31 11:45PM';

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Eric M Russell (7/14/2011)


    I don't think that knowing from memory the syntax for infrequently used T-SQL statements and admin commands is relevent. However, I do expect a candidate to complete the following test correctly. The test is simple enough that it can be sketched out with pencil and paper in a couple of minutes, but it's tricky enough to test their proficiency with a common scenario that involves aggregate queries, outer joins, and datetime datatypes.

    I provide them a sheet of paper that contains the DDL and sample data for two tables, Customer and Customer_Call, and then ask them to write a SQL query that returns the name and phone number for each customer who were NOT called at least 3 times in the month of March 2010.

    create table customer

    (

    customer_id int not null primary key,

    customer_name varchar(120) not null,

    customer_phone varchar(30) not null

    );

    create table customer_call

    (

    primary key ( call_time, customer_id ),

    customer_id int not null,

    call_time smalldatetime not null

    );

    insert into customer ( customer_id, customer_name, customer_phone )

    select 1, 'John Smith', '555-555-001' union all

    select 2, 'Deb Black', '555-555-002' union all

    select 3, 'Luke Fish', '555-555-003' union all

    select 4, 'Phil Baker', '555-555-004' union all

    select 5, 'Jane Cook', '555-555-005';

    insert into customer_call ( customer_id, call_time )

    select 4, '2010-02-28 03:30PM' union all

    select 1, '2010-03-01 02:20PM' union all

    select 1, '2010-03-02 09:52AM' union all

    select 4, '2010-03-02 04:05PM' union all

    select 4, '2010-03-15 09:12AM' union all

    select 1, '2010-03-31 11:45PM';

    This is good for testing their SQL query development skills, but when I am hiring a DBA I want to also know more about how he/she is going to approach a db server/database being down or a query that is hung up. It's not just about how good their SQL query skills are. There is a lot more to being a DBA than simply coding. That is what SQL Developers are for. It's good to have both, don't get me wrong, but you don't always get that candidate though, and if I had to choose between the two, I come down on the DBA Admin side.:-D

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • This is good for testing their SQL query development skills, but when I am hiring a DBA I want to also know more about how he/she is going to approach a db server/database being down or a query that is hung up. It's not just about how good their SQL query skills are. There is a lot more to being a DBA than simply coding. That is what SQL Developers are for. It's good to have both, don't get me wrong, but you don't always get that candidate though, and if I had to choose between the two, I come down on the DBA Admin side.:-D

    Depends on the role, though, doesn't it? I'm more of a developer, and would want to be tested on my SQL skills, ideally with all the resources I'd have in the office at my disposal. That's what I was testing for when I hired more developers as well.

  • Freddie-304292 (7/15/2011)


    This is good for testing their SQL query development skills, but when I am hiring a DBA I want to also know more about how he/she is going to approach a db server/database being down or a query that is hung up. It's not just about how good their SQL query skills are. There is a lot more to being a DBA than simply coding. That is what SQL Developers are for. It's good to have both, don't get me wrong, but you don't always get that candidate though, and if I had to choose between the two, I come down on the DBA Admin side.:-D

    Depends on the role, though, doesn't it? I'm more of a developer, and would want to be tested on my SQL skills, ideally with all the resources I'd have in the office at my disposal. That's what I was testing for when I hired more developers as well.

    Yes, but just remember what DBA stands for if you interview people for that position in the future (Database ADMINISTRATOR). There is a reason it is called that.:-D

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • Just to add my 2 cents... There are a huge number of tasks required of a DBA that are made much simpler through the use of an ad-hoc query or a stored procedure. In the vein of determining what to do if "a query that is hung up", (s)he better know enough about T-SQL to recognize when someone has written (for example) an unsupported form of a joined UPDATE that will slam multiple CPU's into the wall because of the "Halloween" effect that it caused. And, yes, you can tell just by looking at the UPDATE. And, yes, I want a DBA that can look at 3rd party code that (s)he captured in a server side profiler run and easily figure out why it's such a pig today but wasn't yesterday.

    To me, a DBA isn't a DBA unless they also have some pretty decent T-SQL skills.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • To me, a DBA isn't a DBA unless they also have some pretty decent T-SQL skills.

    T-SQL skills is a part of the job, but it is still just a part of the job. IMHO, it is no more im portant than performance tuning, replication, disaster recovery, and data modeling skills just to name a few, and might even be a lot less in my opinion. In the 20+ years I have been in this business, I have never seen anyone fired for writing a bad query. Counselled and trained, yes, but not fired. However, I have seen plenty of DBA's fired for screwing up a disaster recovery plan, or designing a database badly, or even messing up a million dollar subscriber database because they screwed up the replication setup. I'll take a good ADMIN over a good query person every time. 😀

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • There are some DBAs who do nothing but provision servers and disk storage, schedule backups, etc. You may see that in a large organization like Google where there are hundreds of homogenous servers and dozens of DBAs. However, if a DBA's role includes performance tuning, and they basically own the maintenance and health of an OLTP or datawarehouse, then they must have a working knowledge of T-SQL. They have to be able to look at a SQL query or execution plan and say "this is wrong because...". Well, maybe just identifying a bad execution plan and bringing it to the attention of the developer is enough, but I don't think you can be the top dog DBA in an organization unless you really know SQL too.

    Also, depending on the role and organization, a database developer may sometimes be required to perform certain DBA tasks. For example, there are some development and QA servers where I do everything but the initial provisioning of hardware and installing the server. Desinging the data model and indexes, adding roles and users, defragging tables, etc. is my job in addition to the usual development stuff. When I build deployment scripts for QA, it's the same scripts that the production control team will use for production, so it requires that I know more about architecture and internals.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • TravisDBA (7/15/2011)


    I'll take a good ADMIN over a good query person every time. 😀

    I'm greedy... I want and get both in the same person. 🙂 It sometimes takes a bit of time to find the right person, but I just won't compromise on a DBA needing more than adequate T-SQL skills.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden (7/16/2011)


    TravisDBA (7/15/2011)


    I'll take a good ADMIN over a good query person every time. 😀

    I'm greedy... I want and get both in the same person. 🙂 It sometimes takes a bit of time to find the right person, but I just won't compromise on a DBA needing more than adequate T-SQL skills.

    It's good to have both, because like I said, it is part of the job. It's just not number #1 on my list. I know developers who are great query writers and I would not trust them to set up and maintain replication on one of the production servers, or troubleshoot a downed server. Query writing is all well and good, but what good is that if a db server is down and the CIO is in your office wanting resolution immediately. What good is their query writing if they don't know how to get the box online in order to run that query? I want know how someone is going to perform in an emergency when they lose a couple of data drives in the middle of a business day. That's where the rubber meets the road as far as I'm concerned. Writing an efficient query at times like that is secondary on my hit list. 😀

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • TravisDBA (7/16/2011)


    Jeff Moden (7/16/2011)


    TravisDBA (7/15/2011)


    I'll take a good ADMIN over a good query person every time. 😀

    I'm greedy... I want and get both in the same person. 🙂 It sometimes takes a bit of time to find the right person, but I just won't compromise on a DBA needing more than adequate T-SQL skills.

    It's good to have both, because like I said, it is part of the job. It's just not number #1 on my list. I know developers who are great query writers and I would not trust them to set up and maintain replication on one of the production servers, or troubleshoot a downed server. Query writing is all well and good, but what good is that if a db server is down and the CIO is in your office wanting resolution immediately. What good is their query writing if they don't know how to get the box online in order to run that query? I want know how someone is going to perform in an emergency when they lose a couple of data drives in the middle of a business day. That's where the rubber meets the road as far as I'm concerned. Writing an efficient query at times like that is secondary on my hit list. 😀

    I agree that being able to write decent queries and to read others' code is #2 on the list of talent for System DBA's... it's just a mandatory item on the list for me. 😀

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • I agree that being able to write decent queries and to read others' code is #2 on the list of talent for System DBA's... it's just a mandatory item on the list for me. 😀

    If T-SQL query skills is really important for people, and I have heard that in interviews myself. My response to that, is "If expert query skills are that crucial for this position, then maybe you need to hire a database developer, instead of a Database Admnistrator." However, everyone today wants their cake and eat it too...and that's just fine in an ideal world. I have often said many times in the past in the IT industry. "This is NOT Burger King, you can't always get what you want when you want it ..we are not slapping burgers together here..." However, that mentality is still rampant in this business though. I see it everyday...:-D

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • TravisDBA (7/17/2011)


    I agree that being able to write decent queries and to read others' code is #2 on the list of talent for System DBA's... it's just a mandatory item on the list for me. 😀

    If T-SQL query skills is really important for people, and I have heard that in interviews myself. My response to that, is "If expert query skills are that crucial for this position, then maybe you need to hire a database developer, instead of a Database Admnistrator." However, everyone today wants their cake and eat it too...and that's just fine in an ideal world. I have often said many times in the past in the IT industry. "This is NOT Burger King, you can't always get what you want when you want it ..we are not slapping burgers together here..." However, that mentality is still rampant in this business though. I see it everyday...:-D

    I get the "cake and eat it too" bit...my favorite is the 2011 job requirement asking for 7+ years of experience administrating SQL Server 2008 databases 😛

    That said, I would not want to work elbow-to-elbow with a DBA that did not have a solid set of T-SQL skills. I'm not saying all DBAs have to be able to write application code but working with DMV/DMFs, doing code reviews, writing admin scripts to do things like take backups, reading metadata, looking at execution plans...you're telling me there is a SQL Server DBA that does not need solid T-SQL skills?!? Seriously?!? If they're just provisioning disk, or doing base installs and then passing it to the next person in the assembly line, maybe, but how many of these jobs exist? Not as many as the do-it-all DBA that has to, well, do-it-all and be proficient at many aspects of SQL Server.

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato

  • opc.three (7/17/2011)


    TravisDBA (7/17/2011)


    I agree that being able to write decent queries and to read others' code is #2 on the list of talent for System DBA's... it's just a mandatory item on the list for me. 😀

    If T-SQL query skills is really important for people, and I have heard that in interviews myself. My response to that, is "If expert query skills are that crucial for this position, then maybe you need to hire a database developer, instead of a Database Admnistrator." However, everyone today wants their cake and eat it too...and that's just fine in an ideal world. I have often said many times in the past in the IT industry. "This is NOT Burger King, you can't always get what you want when you want it ..we are not slapping burgers together here..." However, that mentality is still rampant in this business though. I see it everyday...:-D

    I get the "cake and eat it too" bit...my favorite is the 2011 job requirement asking for 7+ years of experience administrating SQL Server 2008 databases 😛

    That said, I would not want to work elbow-to-elbow with a DBA that did not have a solid set of T-SQL skills. I'm not saying all DBAs have to be able to write application code but working with DMV/DMFs, doing code reviews, writing admin scripts to do things like take backups, reading metadata, looking at execution plans...you're telling me there is a SQL Server DBA that does not need solid T-SQL skills?!? Seriously?!? If they're just provisioning disk, or doing base installs and then passing it to the next person in the assembly line, maybe, but how many of these jobs exist? Not as many as the do-it-all DBA that has to, well, do-it-all and be proficient at many aspects of SQL Server.

    I never said that a DBA did not need the T-SQL skillset. As I said before, for the third time, it is part of the job, It's just not at the top of my hit list. RIF people. 😀

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

Viewing 15 posts - 61 through 75 (of 87 total)

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