À l'ère où une énorme quantité de données est générée au jour le jour, les données jouent un rôle crucial dans la prise de décision pour les opérations commerciales. Ainsi, pour gérer les données, nous avons besoin de bases de données, ce qui nous oblige à comprendre les systèmes de gestion de bases de données. Avec divers systèmes de gestion de bases de données, MS SQL Server est l'un des systèmes de gestion de bases de données relationnelles les plus populaires. Ce type de SGBD utilise une structure qui permet aux utilisateurs d'identifier et d'accéder aux données en relation à une autre donnée de la base de données. Ainsi, connaître MS SQL Server vous ouvre les portes pour devenir administrateur de base de données. Je crois que vous êtes déjà au courant de ces faits et cela vous a fait atterrir sur cet article MS SQL Server Interview Questions.
Dans cet article sur les questions d'entretien avec Microsoft SQL Server, je discuterai des principales questions liées à MS SQL Server posées lors de vos entretiens. Ces questions sont recueillies après consultation de personnes ayant d'excellentes compétences dans ce domaine.
Commençons !
Q1. Mentionnez les différences entre SQL Server et MySQL.
SQL Server | MySQL |
Développé par Microsoft | Développé par Oracle |
Logiciel sous licence | Logiciel open source |
Prend en charge C#, Java C++, PHP, Visual Basic, Perl, Python, Ruby, etc | Prend en charge PHP, Perl, Python, Ruby, etc. |
N'autorise aucun type de manipulation de fichier de base de données lors de l'exécution | Permet la manipulation des fichiers de base de données pendant l'exécution. |
Autorise l'annulation de la requête à mi-chemin dans le processus | N'autorise pas l'annulation de la requête à mi-parcours du processus. |
Lors de la sauvegarde des données, il ne bloque pas la base de données | Lors de la sauvegarde des données, cela bloque la base de données |
Occupe une grande quantité d'espace de stockage opérationnel. | Prend moins d'espace de stockage opérationnel. |
Disponible en mode express et personnalisé. | Disponible dans MySQL Community Edition et MySQL Enterprise Edition |
Q2. Qu'entendez-vous par Agent SQL Server ?
L'Agent SQL Server est un service Windows utilisé pour planifier et exécuter des tâches. Ici, chaque tâche contient une ou plusieurs étapes, et chaque étape contient une tâche. Ainsi, le Server Agent utilise SQL Server pour stocker les informations sur les travaux et exécuter un travail selon un calendrier.
Les principaux composants de l'Agent SQL Server sont les tâches, les planifications, les opérateurs et les alertes.
Exemple :
Si une entreprise souhaite effectuer une sauvegarde des serveurs de l'entreprise à 21 h 00 tous les vendredis, vous pouvez très bien automatiser cette tâche pour laisser la planification se dérouler d'elle-même. . Dans un scénario, la sauvegarde rencontre une erreur, l'Agent SQL Server enregistre l'événement et notifie l'équipe correspondante.
Q3. Mentionnez les différents modes d'authentification dans SQL Server.
Avant de vous parler des différents modes d'authentification dans SQL Server, laissez-moi vous dire que le mode d'authentification est utilisé pour authentifier un utilisateur dans SQL Server. Le mode d'authentification est sélectionné lors de la configuration du moteur de base de données. Donc, si vous voulez savoir comment configurer Microsoft SQL Server, vous pouvez vous référer à mon article.
Les différents modes d'authentification proposés par SQL SERVER sont les suivants :
- Mode d'authentification Windows : Ce mode est utilisé pour se connecter au serveur via un compte Windows. Ici, le serveur prend le nom d'utilisateur et le mot de passe des ordinateurs à des fins d'authentification. De plus, le mode d'authentification du serveur SQL est désactivé dans ce mode.
- Mode mixte : Le mode mixte est utilisé pour se connecter à une instance de SQL Server en utilisant soit l'authentification SQL Server, soit l'authentification Windows. Dans ce mode, un nom d'utilisateur et un mot de passe sont définis par l'utilisateur pour la base de données.
Q4. Mentionnez les différences entre les tables temporaires locales et globales.
Table temporaire locale | Tableau temporaire global |
Ces tableaux n'existent que pour la durée de la connexion ou la durée de cette instruction. | Ces tables existent en permanence dans la base de données et seules les lignes sont supprimées lorsque la connexion est fermée. |
Syntaxe : CRÉER TABLE # | Syntaxe : CRÉER TABLE ## |
Q5. Comment pouvez-vous vérifier la version de SQL Server ?
Pour vérifier la version de SQL Server, vous pouvez utiliser la commande suivante :
SELECT @@version
Le @@VERSION donne une sortie sous la forme d'une chaîne nvarchar.
Q6. Qu'est-ce que le mode mono-utilisateur et quelles sont les étapes à suivre pour démarrer SQL Server en mode mono-utilisateur ?
Il arrive souvent que vous souhaitiez démarrer une instance de SQL Server en mode mono-utilisateur. Vous pouvez le faire, soit lorsque vous souhaitez récupérer des données à partir d'autres systèmes de base de données, soit lorsque vous souhaitez modifier les configurations du serveur.
Lorsque vous démarrez SQL Server en mode mono-utilisateur, tout membre du groupe d'administrateurs local de l'ordinateur se connecte à l'instance de SQL Server en tant qu'administrateur système.
Les événements suivants se produisent lors du démarrage de la base de données en mode mono-utilisateur :
- Un seul utilisateur se connecte au serveur.
- Le POINT DE CONTRÔLE le processus n'est pas exécuté puisqu'il est exécuté par défaut au démarrage.
Notez également que vous devez arrêter le service SQL Server Agent avant de vous connecter à une instance de SQL Server en mode mono-utilisateur.
- Pour démarrer SQL Server en mode mono-utilisateur, utilisez la commande :
sqlcmd –m
- Pour vous connecter via l'éditeur de requête dans Management Studio, utilisez :
-m"Microsoft SQL Server Management Studio - Query".
Q7. Qu'est-ce que le profileur SQL Server ?
Le Microsoft SQL Server Profiler est une interface utilisée pour créer et gérer des traces. Il analyse et rejoue également les résultats de la trace. Ici, les événements sont enregistrés dans un fichier de trace qui sont ensuite analysés ou utilisés pour rejouer une série d'étapes spécifiques lors du débogage d'un problème.
Vous pouvez utiliser SQL Server Profiler pour des activités telles que :
- Rechercher la cause première du problème
- Surveillance des performances de SQL Server pour gérer les charges de travail.
- Diagnostiquer les requêtes lentes
- Capturer une série d'instructions SQL à l'origine du problème, pour répliquer davantage le problème sur le serveur de test, tout en déboguant le problème.
- Cela aide également à corréler les compteurs de performances pour déboguer facilement les problèmes.
Q8. Quel est le port TCP/IP sur lequel SQL Server s'exécute ?
Le port TCP/IP sur lequel SQL Server s'exécute est 1433.
Q9. Que sont les sous-requêtes dans SQL Server ? Expliquez ses propriétés.
Une sous-requête est une requête à l'intérieur d'une autre requête où une requête est définie pour récupérer des données ou des informations de la base de données. Dans une sous-requête, la requête externe est appelée requête principale tandis que la requête interne est appelée sous-requête. Les sous-requêtes sont toujours exécutées en premier et le résultat de la sous-requête est transmis à la requête principale. Il peut être imbriqué dans un SELECT, UPDATE ou toute autre requête. Une sous-requête peut également utiliser des opérateurs de comparaison tels que>, Les propriétés des sous-requêtes sont les suivantes : Dans une installation en cluster, le serveur SQL utilise la connexion disponible DLL, et bloque ainsi toute autre connexion au serveur. Dans cet état, si vous essayez de mettre les ressources de l'Agent SQL Server en ligne, il peut alors basculer les ressources SQL vers un autre nœud car il pourrait être configuré pour un groupe. Ainsi, pour démarrer une installation en mode utilisateur unique en cluster, vous pouvez suivre les étapes ci-dessous : La réplication dans Microsoft SQL Server est un processus permettant de synchroniser les données sur plusieurs serveurs. Cela se fait généralement par un ensemble de répliques, et ces ensembles fournissent plusieurs copies de données avec redondance et haute disponibilité sur différents serveurs. Non seulement cela, mais la réplication fournit un mécanisme pour récupérer des échecs. Il supprime également les dépendances d'un seul serveur pour protéger la perte de données d'un seul serveur. Voici trois types de réplications dans SQL Server : Fournit une syntaxe simple et facile. Se compose d'une syntaxe complexe et comparativement plus efficace. Utilise transact SQL ou T-SQL. Utilise PL/SQL Ne prend pas en charge l'optimisation des requêtes. Utilise l'optimisation des requêtes en étoile. Les restaurations ne sont pas autorisées dans le processus de transaction. Les restaurations sont autorisées pendant le processus de transaction. Autorise les sauvegardes incrémentielles, partielles et complètes Autorise les sauvegardes incrémentielles, complètes, au niveau des fichiers et différentielles. Ne prend pas en charge le clustering. Offre la prise en charge de la configuration en cluster. Les instructions telles que INSERT, UPDATE, DELETE sont exécutées en série. Des instructions telles que INSERT, UPDATE, DELETE, MERGE sont exécutées en parallèle. Les tâches sont planifiées via l'agent SQL Server Les tâches sont planifiées via le planificateur Oracle ou OEM Microsoft SQL Server utilise une hiérarchie de verrouillage chaque fois que les données sont lues ou que quelque chose est modifié dans les données. Chaque fois qu'une ligne est lue, SQL Server acquiert un verrou partagé. De même, dès que nous modifions une ligne, SQL Server acquiert un verrou exclusif. Ces serrures sont incompatibles entre elles. Ainsi, les verrous INTENT sont utilisés pour indiquer à un niveau supérieur quels verrous sont appliqués dans une hiérarchie de verrous. Il existe principalement trois types de verrous INTENT :
Les étapes à suivre pour masquer les instances SQL Server sont les suivantes :
Les services de qualité des données dans SQL Server sont un produit de qualité des données basé sur les connaissances. SQL Server Data Quality Services (DQS) permet à l'utilisateur de construire une base de connaissances et de l'utiliser ensuite pour effectuer des tâches telles que la correction, la déduplication, l'enrichissement, la normalisation des données. En dehors de cela, DQS fournit également un profilage et vous permet d'effectuer un nettoyage des données à l'aide de services de données basés sur le cloud. DQS se compose de deux composants : Les tables magiques sont des tables créées automatiquement dans SQL Server et utilisées pour stocker en interne les valeurs insérées et mises à jour pour les opérations DML telles que (SELECT, DELETE, INSERT, UPDATE, etc.). Change Data Capture ou plus communément appelé CDC est utilisé pour enregistrer les activités INSERT, UPDATE, DELETE appliquées sur les tables. Ainsi, comme son nom l'indique, Change Data Capture est utilisé pour capturer les données qui ont été modifiées récemment. Les informations de colonne et les métadonnées requises pour appliquer les modifications à l'environnement cible sont capturées pour les lignes modifiées et sont finalement stockées dans les tables de modifications. Ces tables de modifications sont l'image miroir de la structure de colonne d'origine. Les déclencheurs sont utilisés pour exécuter des lots de code SQL chaque fois que des commandes INSERT, DELETE ou UPDATE sont exécutées sur une table. Donc, fondamentalement, les déclencheurs sont automatiquement exécutés chaque fois que les données sont modifiées en fonction des opérations de manipulation de données.
Les différents types de déclencheurs sont les suivants : Une procédure stockée récursive est une méthode de résolution de problèmes grâce à laquelle vous pouvez arriver à la solution encore et encore. Le processus d'automatisation de la sauvegarde pour restaurer les bases de données d'un serveur autonome vers un autre serveur de secours autonome est connu sous le nom d'envoi de journaux. Vous pouvez également considérer l'envoi de journaux comme l'une des solutions de reprise après sinistre, car il garantit que même si un serveur tombe en panne, le serveur de secours disposera des mêmes données que celles du serveur lui-même.
Les avantages du Log Shipping sont les suivants : Ces indicateurs sont utilisés pour modifier le comportement du serveur ou définir les caractéristiques du serveur. Quelques indicateurs de trace courants utilisés avec SQL Server sont les suivants Utilisé pour renvoyer une partie spécifique de la chaîne dans une chaîne donnée Utilisé pour renvoyer une position de caractère dans une chaîne spécifiée donnée Exemple : SOUS-CHAINE(‘Edureka’,1,4) Sortie : Édur Exemple : CHARINDEX(‘r’,’Edureka’,1) Sortie : 4 Analysis Services dans Microsoft SQL Server est un moteur de données analytiques utilisé dans l'analyse commerciale et l'aide à la décision. Ce service fournit des modèles sémantiques de niveau entreprise pour les applications clientes et les rapports tels que Power BI, Microsoft Excel et d'autres outils de visualisation. Analysis Services est disponible sur des plateformes telles que : La mise en miroir dans SQL Server est conçue pour maintenir un serveur de secours, qui est cohérent avec le serveur principal en termes de transaction. En outre, les enregistrements du journal des transactions sont envoyés du serveur principal au serveur secondaire. Voici les avantages de la mise en miroir : Les curseurs basés sur SQL Server sont utilisés lorsque vous souhaitez travailler sur un enregistrement à tout moment, plutôt que de prendre toutes les données d'une table en masse. Cependant, il n'est pas préférable d'utiliser les curseurs lorsque de grands volumes de données sont présents car cela affecte les performances. Dans un scénario où il n'est pas possible d'éviter les curseurs, essayez de réduire le nombre d'enregistrements à traiter en utilisant une table temporaire, puis construisez éventuellement le curseur à partir de celle-ci. La conception physique et logique joue un rôle important dans les performances des applications basées sur SQL Server. Nous devons nous assurer que les données correctes sont capturées dans les tables appropriées, que les éléments de données ont des relations appropriées entre eux et que la redondance des données est réduite. Je suggérerais également que pendant que vous concevez une base de données, assurez-vous qu'il s'agit d'un processus itératif pour atteindre tous les objectifs système requis et qu'il est sous observation constante. Une fois la conception de la base de données définie, il est très difficile de modifier la conception en fonction des besoins. Vous pouvez uniquement ajouter de nouvelles relations et éléments de données. Q27. Qu'entendez-vous par fonction définie par l'utilisateur dans SQL Server et expliquez-vous les étapes pour créer et exécuter une fonction définie par l'utilisateur dans SQL Server ? Une fonction définie par l'utilisateur est une fonction écrite selon les besoins de l'utilisateur en implémentant une logique. Dans ces types de fonctions, l'utilisateur n'est pas limité aux fonctions prédéfinies et simplifie le code complexe de la fonction prédéfinie en écrivant un code simple. Cette fonction renvoie une valeur scalaire ou un tableau. Pour créer une fonction définie par l'utilisateur, reportez-vous à l'exemple suivant :
Pour exécuter la fonction créée ci-dessus, reportez-vous à la commande suivante : Un développeur doit vérifier le type d'informations stockées, le volume de données et les données qui seront accessibles. Dans un scénario où vous mettez à niveau un système existant, vous devez analyser les données actuelles, les volumes de données existants se produire et vérifier la méthode par laquelle les données sont accessibles, pour vous aider comprendre les problèmes de conception. Dans un scénario où vous utilisez un nouveau système, vous devez conserver les informations sur les données qui seront capturées, et quels sont les constituants des données, et la relation entre les éléments de données. Une relation dans le SGBD est le scénario dans lequel deux entités sont liées l'une à l'autre. Dans un tel scénario, la table constituée de clés étrangères fait référence à celle d'une clé primaire de l'autre table. Les différents types de relations dans le SGBD sont les suivants :
Une clause JOIN est utilisée pour combiner des lignes de deux tables ou plus, en fonction d'une colonne liée entre elles. Il est utilisé pour fusionner deux tables ou en récupérer des données. Il existe 4 jointures en SQL à savoir : La commande DBCC CHECKDB est utilisée pour vérifier l'intégrité physique et logique de tous les objets de la base de données mentionnée. Pour cela, il effectue les opérations suivantes : Ainsi, il vous suffit d'exécuter la commande DBCC CHECKDB, et automatiquement, les commandes DBCC CHECKALLOC, DBCC CHECKTABLE ou DBCC CHECKCATALOG sont exécutées. Notez également que DBCC est pris en charge sur les bases de données qui contiennent des tables à mémoire optimisée, mais ne fournit pas d'options de réparation. Cela implique que vous devez régulièrement sauvegarder les bases de données et tester ces sauvegardes. La contrainte CHECK dans SQL Server est utilisée pour limiter les valeurs ou le type de données stockées dans une colonne. Une fois que vous avez appliqué la contrainte CHECK sur une seule colonne, vous pouvez continuer et appliquer des valeurs spécifiques pour cette colonne particulière. Cette fonction est utilisée pour renvoyer la première expression non nulle dans les arguments. La commande COALESCE est utilisée pour renvoyer une valeur non nulle à partir de plusieurs colonnes dans les arguments. La fonction FLOOR est utilisée pour arrondir une valeur non entière à la plus petite valeur entière précédente. Cette fonction renvoie une valeur unique après avoir arrondi les chiffres.
Syntaxe :
Exemple : Pour vérifier les verrous dans la base de données, vous pouvez utiliser la procédure stockée intégrée sp_lock.
Pour répertorier tous les verrous actuellement détenus dans une instance du moteur de base de données, utilisez la commande suivante :
Voici trois façons de compter le nombre d'enregistrements dans la table :
Cette fonction est utilisée pour déterminer si le nombre mentionné est zéro, positif et négatif. Ainsi, il renverra soit 0, +1, -1.
Pour trouver le premier jour de la semaine du mois, vous pouvez écrire une requête comme suit : Pour renommer une base de données, vous devez utiliser la commande sp_renamedb de la manière suivante :
To find the 5th highest amount paid from the customers’ table, you can write a query as below:
To delete a table in SQL Server, use the Delete command. With REPEATABLE_READ and SERIALIZABLE isolation levels, locks are held during the transaction. But, if you consider READ_COMMITTED, then locks are held for isolation level.
Note: Whenever GROUP BY is not used, HAVING behaves like a WHERE clause. Integration services is a platform offered by Microsoft to build enterprise-level data transformation solutions and integration. These services solve complex business problems by loading data warehouses, perform data wrangling, copy or download files, and manage SQL Server objects. Also, integration services can extract and transform data from a wide variety of sources such as relational data sources, XML data files, load the data into more than a single database. So, basically, you can use the integration services to create solutions without coding, code complex tasks, program the extensive integration object model to create packages. The integration services include good set of built-in tasks and transformations, graphical tools used for building packages and also contain the Catalog database to store, run and manage packages.
Hotfixes are single, cumulative software packages applied to live systems. This includes one or more files used to address a problem in a software product. Patches are a programs installed on the machines to rectify the problem occurred in the system and ensured the security of the system. So, basically hotfixes are a kind of patch offered by Microsoft SQL Server to address specific issues. These are few encryption mechanisms in SQL Server to encrypt data in the database:
The READ_COMMITED_SNAPSHOT option and the ALLOW_SNAPSHOT_ISOLATION option must be set to allow the usage of optimistic models.
The common performance issues in SQL Server are as follows: So this brings us to the end of the SQL Server Interview Questions article. I hope this set of SQL Server Interview Questions will help you ace your job interview. All the best for your interview! Check out this MySQL DBA Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. This course trains you on the core concepts &advanced tools and techniques to manage data and administer the MySQL Database. It includes hands-on learning on concepts like MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. End of the training you will be able to create and administer your own MySQL Database and manage data. Got a question for us? Please mention it in the comments section of this “SQL Server Interview Questions” article and we will get back to you as soon as possible.
Q10. Comment démarrer le mode mono-utilisateur en cluster installation ?
net start MSSQLSERVER /m.
SQLCMD -E -S<servername>.
Q11. Qu'entendez-vous par réplication dans SQL Server ? Mentionnez les différents types de réplication dans SQL Server.
Q12. Quelles sont les différences entre MS SQL Server et Oracle ?
MS SQL Server Oracle Q13. Qu'entendez-vous par verrous INTENT ?
Q14. Quelles sont les étapes à suivre pour masquer les instances SQL Server ?
Q15. Qu'entendez-vous par services de qualité des données dans SQL Server ?
Q16. Expliquer les tables magiques dans le serveur SQL
Q17. Qu'entendez-vous par Modifier la capture de données ?
Q18. Qu'entendez-vous par déclencheurs et mentionnez-en les différents types ?
Q19. Qu'entendez-vous par procédure stockée récursive ?
Q20. Expliquez l'envoi de journaux et mentionnez ses avantages.
Q21. Que sont les indicateurs de trace et mentionner quelques indicateurs de trace courants utilisés avec SQL Server ?
Q22. Mentionnez les différences entre SUBSTR et CHARINDEX dans SQL Server.
SUBSTR CHARINDEX Q23. Qu'entendez-vous par Analysis Services dans SQL Server ?
Q24. Qu'entendez-vous par Mirroring et mentionnez les avantages du Mirroring ?
Q25. Quand pensez-vous qu'un développeur devrait utiliser des curseurs basés sur SQL Server ?
Q26. Quel rôle la conception de la base de données joue-t-elle dans les performances d'une application basée sur SQL Server ?
CREATE FUNCTION samplefunc(@num INT)
RETURNS TABLE
AS
RETURN SELECT * FROM customers WHERE CustId=@num
SELECT * FROM samplefunc(10)
Q28. Comment pouvez-vous vous assurer que la base de données et l'application basée sur SQL Server fonctionnent correctement ?
Q29. Que sont les relations et mentionnez les différents types de relations dans le SGBD
Q30. Que sont les jointures en SQL et quels sont les différents types de jointures ?
Q31. A quoi sert la commande DBCC CHECKDB ?
Q32. Qu'entendez-vous par contrainte CHECK dans SQL Server ?
Exemple :
CREATE TABLE Customer (
Cust_ID int NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Customer CHECK (Age>20 AND City= 'Hyderabad')
);
Q33. Que faire vous entendez par COALESCE dans SQL Server ?
Exemple :
SELECT COALESCE(CustID, CustName, Amount) from Customers;
Q34. Expliquez l'utilisation de la fonction FLOOR dans SQL Server.
FLOOR(expression)
FLOOR(7.3)
Q35. Quelle est la commande utilisée pour vérifier les verrous dans Microsoft SQL Server ?
Syntaxe
sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]
[ ; ]
Exemple :
USE SampleDB;
GO
EXEC sp_lock;
GO
Q36. Mentionnez les 3 façons d'obtenir le décompte du nombre d'enregistrements dans une table.
SELECT * FROM TableName;
SELECT COUNT(*) FROM TableName;
SELECT rows FROM indexes WHERE id = OBJECT_ID(TableName) AND indexid< 2;
Q37. A quoi sert la fonction SIGN ?
Syntaxe :
SIGN(number)
Exemple :
SIGN (0) returns 0
SIGN (21) returns 1
SIGN (-21) returns -1
Q38. Écrire une requête SQL pour trouver le premier jour de la semaine du mois ?
SELECT DATENAME(dw, DATEADD(dd, – DATEPART(dd, GETDATE()) + 1, GETDATE())) AS FirstDay;
Q39. Mentionnez la commande utilisée pour renommer la base de données.
sp_renamedb 'OldDatabaseName', 'NewDatabaseName';
Q40. Write a query to find 5th highest amount paid from the Customer table.
SELECT TOP 1 amount FROM (SELECT DISTINCT TOP 5 amount FROM customers ORDER BY amount DESC) ORDER BY amount;
Q41. How can we delete a table in SQL Server?
Syntax:
DELETE TableName
Example:
DELETE Customers;
Q42. What is the purpose of UPDATE STATISTICS and SCOPE_IDENTITY() function ?
Q43. What do you understand by PHYSICAL_ONLY option in DBCC CHECKDB?
Q44. Can you explain how long are locks retained within the REPEATABLE_READ and SERIALIZABLE isolation levels, during a read operation with row-level locking?
Q45. Mention the differences between HAVING and WHERE clause.
HAVING WHERE Used only with SELECT statement Used in a GROUP BY clause Used with the GROUP BY function in a query Applied to each row before they are a part of the GROUP BY function in a query Q46. What do you understand by integration services in SQL Server?
Q47. What do you understand by Hotfixes and Patches in SQL Server?
Q48. Can you name a few encryption mechanisms in SQL server?
Q49. What are the options which must be set to allow the usage of optimistic models?
Q50. What are the common performance issues in SQL Server?