Questions d'entretiens pour le poste de Senior SQL Developer - Too Difficult?

Avertissement, c'est un long post. TL/DR: Suis-je trop sévère avec mes questions d'entrevue?

OK, après ~9 mois de déception totale dans le bassin de candidats, je veux m'assurer que nous ne sommes pas en attendre trop de notre développeur senior candidats.

Fond

Nous sommes une entreprise intelligence de la boutique. Cependant, nous ne prévoyons pas que les candidats à venir avec BI connaissances. Si vous avez une solide T-SQL fond, c'est tout ce dont nous avons besoin. Nous allons vous obtenir le reste du chemin en ce qui concerne les Services d'Analyse, de Modélisation Dimensionnelle, etc. Donc, tout ce que nous test est T-SQL compétences. Tout se passe dans SSMS.

Si les candidats à passer à une présélection par téléphone, nous les apporter pour un codage de l'entrevue où nous leur donnons des 7 questions ainsi que d'un espace de 90 minutes. Je suis présent lors de la codification de regarder pour diverses choses comme la façon dont ils naviguer à travers les outils, ce qu'ils recherche, etc. Il convient de noter que nous, il est très clair que toutes les ressources sont disponibles, y compris l'internet, BOL, etc.

Questions

Ici sont les questions sous une forme abrégée dans une tentative de ne pas donner trop loin (car elles pourraient google cette question :P)

  1. Fizzbuzz - je veux voir comment ils génèrent leur ensemble de lignes. Si ils utilisent des variables/les boucles, je meurs à l'intérieur de
  2. Agrégation - La question fondamentalement, les forces de candidats pour utiliser le champ d'application de l'instruction select (select, from, where, group by, having)
  3. Comment les valeurs Null travail - je donner un "difficile" question " d'où une IN sous-requête ne retourne rien, à cause de la valeur NULL dans la subqueried table. Je demande pour la solution de contournement pour faire le travail de requête et ensuite une explication sur pourquoi il n'a pas en premier lieu. Je veux savoir qu'ils comprennent ce qu'une valeur NULL est/et comment SQL évalue.
  4. Indexation - Un simple 2 requête de jointure sans index. Je demande que les candidats améliorer l'ensemble de requêtes sous-arbre de coûts de 20%. J'ai rapidement savoir si oui ou non ils ont indexé avant. Je me fais un devoir de les informer "LIRE LA QUESTION. ME DONNER CE QUE JE DEMANDE". Malheureusement, je ne pense pas qu'un seul demandeur, comme l'a souligné même le début ou la fin de la sous-arborescence coût.
  5. Des cumuls - je donner un tableau avec un PK/date/valeurs numériques et leur demander de mettre à jour une autre colonne avec un total cumulé par PK. Ce n'est pas facile et c'est une drôle de tâche. Je n'ai pas vraiment de soins s'ils finissent dans le temps, mais je veux voir les résultats de recherche s'ils ne l'ont pas fait ou un décent essayer (même si sa inefficace, à moins de commencer l'écriture de sous-requêtes corrélées).
  6. XML - je leur demander de récupérer une valeur à partir d'un XML de type de colonne. Je n'attend pas des candidats pour savoir comment faire cela, et je leur dis que. Le point de ce que l'on est de les regarder faire de la recherche, etc., comme toutes les autres fois qu'ils rencontrent un problème nouveau au travail et de la nécessité de le résoudre.
  7. CTE - je viens de leur demander d'écrire une expression de table commune. C'est tout. Bonus si il fait quelque chose de créatif, intéressant.

Et c'est tout. Donc, ma question est juste comment sont ces questions? Nous sommes à la recherche de quelqu'un avec de l'expérience réelle. Son insondable pour moi que quelqu'un avec 10 ans de SQL expérience ne peux même pas avoir 1 ou 2 de ces questions. Suis-je trop sévère? Dois-je ajouter/supprimer des trucs de ce?

source d'informationauteur Derek Kromm