Top 50 des questions et réponses d'entretien DB2 (2025)

Vous préparez un entretien DB2 ? Il ne s'agit pas seulement de maîtriser les commandes, mais de démontrer une compréhension approfondie du fonctionnement des bases de données. Chaque entretien DB2 révèle une capacité à résoudre des problèmes, une adaptabilité et une expertise technique pointue.

Les opportunités dans ce secteur sont immenses, des débutants en développement de compétences aux professionnels expérimentés avec 5, voire 10 ans d'expérience de base. Les questions et réponses des entretiens DB2 évaluent l'expertise technique, les compétences d'analyse et la maîtrise du domaine. Les managers, les seniors et les chefs d'équipe apprécient les candidats qui démontrent une analyse avancée, une expérience technique et une expérience professionnelle sur le terrain.

S'appuyant sur les réflexions de plus de 65 dirigeants techniques, étayées par les commentaires de plus de 40 responsables du recrutement et professionnels de tous les secteurs, cet article couvre les domaines les plus courants, les plus avancés et les plus pratiques qui comptent vraiment.

Questions et réponses d'entretien DB2

1) Qu'est-ce que DB2 et pourquoi est-il important dans les applications d'entreprise ?

DB2 est une famille de systèmes de gestion de bases de données relationnelles (SGBDR) développés par IBM, largement utilisé dans les environnements d'entreprise pour la gestion des données structurées et non structurées. Il est particulièrement important sur IBM Mainframes (z/OS), où il alimente les systèmes critiques des secteurs bancaire, des assurances et public. Ses fonctionnalités avancées, telles que le contrôle de la concurrence, le partitionnement, les procédures stockées et les pools de mémoire tampon, permettent à DB2 d'évoluer vers des milliers d'utilisateurs simultanément. Par exemple, dans les institutions financières, DB2 traite des millions de transactions quotidiennement tout en garantissant les propriétés ACID, ce qui en fait un élément clé des systèmes à haute disponibilité.

👉 Téléchargement PDF gratuit : Questions et réponses d'entretien DB2


2) En quoi DB2 diffère-t-il des autres bases de données relationnelles comme Oracle or MySQL?

Alors que toutes les bases de données relationnelles gèrent les données dans des tables à l'aide de SQL, DB2 se distingue par son évolutivité et sa prise en charge de plateformes. MySQL, qui est léger et souvent utilisé pour les applications Web, DB2 est optimisé pour les mainframes et les systèmes d'entreprise Linux/Unix/Windows environnements. Comparé à Oracle, DB2 offre une intégration plus étroite avec IBM middleware et z/OS, avec un support puissant pour le parallélisme et la gestion de la charge de travail.

Facteur DB2 Oracle MySQL
Utilisation principale Entreprise, Mainframe Entreprise, Intersectorielle Applications Web, Startups
Performance Optimisé pour OLTP/OLAP OLTP puissant + clustering Modérée
Licence Niveaux flexibles Coût élevé Principalement open source
Plate-forme de soutien Mainframe + LUW LUW LUW

3) Expliquez le cycle de vie d’une instruction DB2 SQL, du codage à l’exécution.

Le cycle de vie d'une instruction SQL DB2 comprend plusieurs étapes pour garantir son exactitude et son efficacité. Initialement, l'instruction SQL est codé au sein d'une application. Elle subit ensuite pré-compilation, au cours de laquelle DB2 extrait les instructions SQL dans les modules de requête de base de données (DBRM). L'étape suivante est la propriétés de liant processus qui valide le SQL, vérifie les autorisations et génère un chemin d'accès. Enfin, efficace La phase utilise le plan d'accès généré pour récupérer ou modifier les données. Par exemple, un SELECT la requête passe d'abord par l'optimiseur, qui détermine s'il faut utiliser une analyse d'index ou une analyse complète de la table, en fonction des statistiques et des index disponibles.


4) Quels sont les différents types de données pris en charge dans DB2 ?

DB2 prend en charge un large éventail de types de données pour stocker des données numériques, textuelles et temporelles. Les types numériques courants incluent SMALLINT, INTEGER, DECIMAL et FLOAT. Les données textuelles peuvent être stockées avec CHAR, VARCHAR et CLOB, tandis que les données binaires utilisent BLOB. Les données temporelles sont prises en charge par DATE, TIME et TIMESTAMP.

Exemple :

  • INTEGER pour les identifiants des employés.
  • VARCHAR(100) pour les noms des employés.
  • DATE pour les dates de jonction.

Ces types garantissent l’intégrité des données tout en permettant une flexibilité entre les applications, et ils sont essentiels lors de la conception de schémas de base de données normalisés.


5) Comment DB2 Optimizer sélectionne-t-il le meilleur chemin d'accès ?

L'optimiseur DB2 analyse les instructions SQL pour déterminer la méthode la plus efficace pour accéder aux données. Il prend en compte facteurs tels que les index disponibles, les statistiques des tables du catalogue, les prédicats de requête et les ressources système. Par exemple, lors de l'interrogation d'une table client, l'optimiseur peut choisir une analyse d'index si un index existe sur la colonne interrogée, ou un analyse séquentielle Si la majorité des lignes sont requises. Grâce à des algorithmes basés sur les coûts, l'optimiseur garantit une exécution efficace, même pour les requêtes complexes avec jointures et sous-requêtes. C'est pourquoi il est essentiel de maintenir à jour les statistiques du catalogue.


6) Pouvez-vous expliquer ce qu'est SQLCA et énumérer ses champs clés ?

La zone de communication SQL (SQLCA) est une structure qui fournit un retour d'information après l'exécution de SQL. Elle est automatiquement mise à jour après chaque opération SQL dans les programmes SQL embarqués. Les principaux champs sont :

  • CODE SQL : Indique le succès (0), l'avertissement (> 0) ou l'erreur (< 0).
  • SQLERRM : Texte du message décrivant le résultat.
  • SQLERRD : Informations de diagnostic, telles que le nombre de lignes traitées.

Par exemple, si un UPDATE modifie 10 lignes, SQLERRD(3) contiendra la valeur 10. SQLCA est essentiel pour la gestion des erreurs et le débogage dans COBOL, C et d'autres langages hôtes intégrés à DB2.


7) Quel est le but des commandes COMMIT et ROLLBACK ?

La commande COMMIT de DB2 garantit que toutes les modifications apportées par une transaction deviennent permanentes, tandis que la commande ROLLBACK annule les modifications non validées. Ces commandes contribuent à la maintenance. la cohérence des données et faire respecter la ACID Propriétés des transactions. Par exemple, dans une application bancaire, si un virement débite un compte mais ne crédite pas un autre, l'exécution d'une commande ROLLBACK garantit qu'aucune transaction partielle ne corrompt les données. Inversement, une fois les deux opérations réussies, une commande COMMIT finalise le virement.


8) Quels sont les différents types de contraintes existant dans DB2 et quels sont leurs avantages ?

Les contraintes appliquent des règles pour préserver l'intégrité des données. DB2 prend en charge plusieurs types de contraintes :

  • Clé primaire: Assure l'unicité et non la nullité.
  • Clé étrangère: Applique l'intégrité référentielle entre les tables.
  • Unique: Garantit l'absence de valeurs en double dans une colonne.
  • Vérifier: Valide que les valeurs répondent à des conditions spécifiques.
  • Non nul : Empêche les valeurs manquantes.

Avantages : Elles réduisent le besoin de validation au niveau de l'application, améliorent la cohérence et protègent contre les saisies de données non valides. Par exemple, une contrainte CHECK peut garantir que les salaires des employés sont toujours supérieurs à zéro.


9) Comment fonctionnent les pools de mémoire tampon dans DB2 ?

Un pool de mémoire tampon est une zone réservée de la mémoire principale utilisée par DB2 pour mettre en cache les pages de table et d'index. Lors de l'exécution d'une requête, DB2 consulte d'abord le pool de mémoire tampon afin de minimiser les E/S sur le disque physique. Des pools de mémoire tampon correctement configurés améliorent considérablement les performances. Par exemple, si les pages de données d'une table fréquemment consultée se trouvent dans le pool de mémoire tampon, les requêtes peuvent être traitées depuis la mémoire plutôt que depuis le disque. Les administrateurs peuvent créer plusieurs pools de mémoire tampon (4 Ko, 8 Ko, 16 Ko, 32 Ko) et les affecter à des tablespaces spécifiques pour des performances optimales.


10) Qu'est-ce qu'un index de clustering et en quoi est-il différent d'un index non clustering ?

Un index clustering détermine l'ordre physique des lignes dans un tablespace, garantissant ainsi le stockage groupé des lignes associées. Cela améliore les performances des requêtes par plage. En revanche, un index non clustering n'affecte pas l'ordre des lignes, mais fournit des chemins d'accès rapides grâce à des pointeurs.

Exemple :

  • Un index de clustering sur une colonne « date de commande » garantit que les commandes récentes sont physiquement regroupées, accélérant ainsi les rapports mensuels.
  • Un index non clusterisé sur « ID client » permet des recherches rapides sans réorganiser les données.
Fonctionnalité ClusterIndex des Non-ClusterIndex des
Affecte l'ordre des lignes Oui Non
Meilleur cas d'utilisation Requêtes de plage Recherches de points
Entretien Plus coûteux lors des insertions Meilleur marché

11) Expliquez la concurrence dans DB2 et comment le verrouillage résout les conflits.

La concurrence désigne l'accès simultané de plusieurs utilisateurs ou applications aux mêmes données. DB2 gère ce phénomène grâce à un mécanisme de verrouillage afin d'éviter les anomalies telles que : mises à jour perdues, lectures saleset lectures fantômesLes verrous peuvent être appliqués à différents niveaux, y compris tableau, pageet rangéePar exemple, dans un système de vente en ligne, la mise à jour simultanée du même enregistrement d'inventaire par deux clients peut entraîner des incohérences. Le verrouillage au niveau des lignes de DB2 garantit qu'une seule mise à jour est effectuée à la fois, préservant ainsi l'exactitude des données tout en autorisant la poursuite des opérations sur différentes lignes.


12) Que sont les modules de demande de base de données (DBRM) et comment sont-ils utilisés dans la liaison ?

Un DBRM est généré lors de la précompilation d'un programme d'application contenant du SQL embarqué. Il contient les instructions SQL extraites. processus de liaisonDB2 valide ces instructions, vérifie les autorisations et génère un plan d'accès stocké dans un package. Ce package est ensuite référencé par un plan d'application lors de l'exécution. Par exemple, dans un programme COBOL-DB2, les instructions SQL sont précompilées dans un DBRM, qui est ensuite intégré à un package garantissant des chemins de requête optimisés.


13) Comment récupérer plusieurs lignes d'une table DB2 dans Embedded SQL ?

Pour récupérer plusieurs lignes, DB2 utilise des curseurs. Un curseur est déclaré pour une instruction SELECT, ouvert pour établir le jeu de résultats, extrait ligne par ligne dans des variables hôtes, puis fermé. Par exemple, dans un programme COBOL :

EXEC SQL DECLARE C1 CURSOR FOR SELECT EMP_NAME FROM EMPLOYEE END-EXEC.
EXEC SQL OPEN C1 END-EXEC.
EXEC SQL FETCH C1 INTO :WS-NAME END-EXEC.
EXEC SQL CLOSE C1 END-EXEC.

Ce mécanisme offre la flexibilité nécessaire pour traiter les lignes de manière séquentielle, en particulier dans les scénarios de création de rapports ou de traitement par lots.


14) Quand et pourquoi faut-il éviter SELECT * dans les programmes DB2 ?

En utilisant SELECT * Récupère toutes les colonnes d'une table, ce qui est inefficace et risqué. Les inconvénients incluent des coûts d'E/S plus élevés, la récupération inutile de colonnes inutilisées et la dépendance de l'application à la structure de la table. Si une nouvelle colonne est ajoutée, les programmes utilisant SELECT * Peut échouer. La meilleure pratique consiste à ne spécifier que les colonnes obligatoires, par exemple :

SELECT EMP_ID, EMP_NAME FROM EMPLOYEE;

Cela réduit la charge de transfert de données et améliore les performances.


15) Que sont les packages DB2 et quels sont leurs avantages ?

Un package est une compilation d'instructions SQL pour un DBRM. Contrairement aux plans, les packages permettent un développement modulaire. Les avantages comprennent:

  • Réduction des frais généraux grâce à la liaison de plus petits ensembles d'instructions SQL.
  • Isolation des erreurs plus facile en cas de défaillance d'un module.
  • Flexibilité de relier un package sans affecter l'ensemble du plan.

Exemple : Dans un grand système bancaire, chaque module fonctionnel (comme la gestion des comptes, le traitement des prêts) peut avoir son propre package, permettant aux développeurs d'en modifier un sans perturber l'ensemble de l'application.


16) Comment la fonction EXPLAIN aide-t-elle à optimiser les performances de DB2 ?

La commande EXPLAIN indique comment l'optimiseur prévoit d'exécuter une requête, notamment les chemins d'accès choisis, les méthodes de jointure et les index utilisés. Le résultat est stocké dans la table PLAN_TABLE. Par exemple, si EXPLAIN révèle une analyse complète d'une table contenant un index, cela peut indiquer des statistiques manquantes ou une mauvaise utilisation de l'index. En analysant le résultat d'EXPLAIN, les administrateurs de bases de données peuvent ajouter des index ou réécrire des requêtes pour optimiser les performances.


17) Quels types de verrous existent dans DB2 et quelles sont leurs caractéristiques ?

DB2 fournit plusieurs types de verrous :

  • Partagé (S) : Plusieurs transactions peuvent être lues, mais pas modifiées.
  • Exclusif (X) : Une seule transaction peut être lue/écrite.
  • Mise à jour (U) : Empêche les blocages lorsqu'un verrou partagé peut devenir ultérieurement exclusif.
Type de verrouillage Caractéristiques Exemple de cas d'utilisation
Owned Lectures multiples autorisées, aucune mise à jour Requêtes de rapport
Exclusifs Contrôle total sur les ressources Mettre à jour les déclarations
Mises à jour Réduit les blocages lors des mises à jour simultanées Reservation en ligne

Les verrous peuvent être appliqués aux niveaux de la ligne, de la page ou de l'espace table en fonction des exigences de concurrence.


18) Quels sont les avantages et les inconvénients du verrouillage au niveau de la page ?

Le verrouillage au niveau de la page verrouille une page entière (par exemple, 4 Ko) de données au lieu d'une seule ligne.

Avantages :

  • Réduit les frais généraux par rapport au verrouillage au niveau des lignes.
  • Efficace pour les opérations en vrac.

Désavantages:

  • Peut provoquer des conflits si plusieurs utilisateurs accèdent à différentes lignes sur la même page.
  • Augmente les risques d'escalade de verrouillage.

Par exemple, la mise à jour simultanée de deux lignes différentes sur la même page par deux utilisateurs peut entraîner des conflits inutiles.


19) Comment DB2 gère-t-il l’intégrité référentielle avec les clés étrangères ?

DB2 applique l'intégrité référentielle via contraintes de clé étrangère, garantissant que les enregistrements de la table enfant font référence à des clés parentes valides. Des options telles que ON DELETE CASCADE or ON DELETE SET NULL Contrôler le comportement de la suppression d'un enregistrement parent. Par exemple, dans une base de données de commandes, si un client est supprimé, toutes ses commandes peuvent être supprimées en cascade ou conservées avec une référence NULL. Cela évite les enregistrements orphelins et assure la cohérence entre les tables liées.


20) Expliquez le rôle du Buffer Gestionnaire dans DB2.

La Buffer Le gestionnaire est responsable du transfert des données entre la mémoire virtuelle de DB2 (pools de mémoire tampon) et le disque physique. Il réduit les E/S disque en mettant en cache les pages fréquemment consultées. Lorsqu'une page est demandée, le Buffer Le gestionnaire vérifie d'abord le pool de mémoire tampon, récupérant les données du disque uniquement en cas d'absence. Par exemple, dans un système générant des rapports financiers quotidiens, Buffer Le gestionnaire garantit que les données fréquemment interrogées sont facilement disponibles en mémoire, réduisant ainsi considérablement le temps d'exécution des requêtes.


21) Quel est le but de la table de contrôle des ressources (RCT) dans DB2 ?

La table de contrôle des ressources (RCT) est un composant DB2/CICS qui définit les plans DB2 accessibles par des transactions CICS spécifiques. Elle fait le lien entre les identifiants de transaction CICS et les identifiants d'autorisation DB2. Par exemple, lorsqu'un utilisateur exécute une transaction CICS interagissant avec DB2, la RCT garantit que seuls les plans DB2 autorisés sont accessibles. Cela empêche toute exécution SQL non autorisée dans les applications CICS. En associant les identifiants de transaction aux plans, la RCT améliore la sécurité et les performances des systèmes de traitement de transactions en ligne à haut volume.


22) Comment un tablespace peut-il être déplacé vers un autre volume DASD dans DB2 ?

Déplacer un tablespace vers un autre DASD (Direct Access Storage Device) nécessite de modifier son groupe de stockage associé. Tout d'abord, un ALTER STOGROUP La commande permet d'ajouter ou de supprimer des volumes. Ensuite, la RÉORGANISATION DE L'ESPACE DE TABLE L'utilitaire permet de déplacer physiquement les données vers le nouveau volume. Pour la récupération, RÉCUPÉRER L'ESPACE DE TABLE Assure la cohérence des données. Par exemple, si un tablespace de production manque d'espace sur un volume, l'administrateur de base de données peut allouer un nouveau volume, modifier le groupe de stockage et réorganiser le tablespace afin que les données futures résident sur le nouveau périphérique sans interruption de service.


23) Expliquez la différence entre DCLGEN et DBRM.

DCLGEN (Déclaration Generator) et DBRM (Database Request Module) servent à des fins différentes dans DB2.

  • DCLGEN : Génère des cahiers de langage hôte et des instructions DECLARE TABLE pour garantir la cohérence du programme et de la base de données.
  • DBRM : Contient des instructions SQL extraites d'un programme après la précompilation, utilisées lors de la liaison.
Aspect DCLGEN DBRM
Objet Définitions de la table de langue hôte Stockage SQL pour la liaison
Utilisation Validation de pré-compilation Entrée pour le processus de liaison
Exemple d'utilisation Assure que les noms de colonnes correspondent Génère le chemin d'accès dans les packages

Les deux outils réduisent les erreurs mais fonctionnent à différentes étapes du développement de l’application.


24) Que sont les sous-requêtes corrélées et quand doivent-elles être utilisées ?

Une sous-requête corrélée est une requête imbriquée dans une autre requête qui référence les colonnes de la requête externe. Contrairement aux sous-requêtes classiques, elle s'exécute une fois pour chaque ligne de la requête externe. Cela la rend utile lorsqu'une évaluation ligne par ligne est nécessaire.

Exemple :

SELECT E1.EMP_ID, E1.EMP_NAME
FROM EMPLOYEE E1
WHERE E1.SALARY > (
	SELECT AVG(E2.SALARY)
	FROM EMPLOYEE E2
	WHERE E2.DEPT_ID = E1.DEPT_ID
);

Cette requête identifie les employés dont le salaire est supérieur au salaire moyen de leur service. Bien que puissantes, les sous-requêtes corrélées peuvent être lentes et doivent être optimisées avec des index.


25) Les curseurs restent-ils ouverts après un COMMIT dans DB2 ?

Par défaut, les curseurs se ferment lorsqu'une instruction COMMIT est exécutée. Cependant, un curseur déclaré avec l'instruction AVEC ATTENTE L'option reste active même après un COMMIT. Ceci est utile pour les transactions longues qui récupèrent de grands ensembles de données en plusieurs étapes. Par exemple :

DECLARE C1 CURSOR WITH HOLD FOR SELECT * FROM EMPLOYEE;

Cela permet de poursuivre la récupération après COMMIT. Cependant, dans les environnements CICS, WITH HOLD n'a aucun effet, car les programmes pseudo-conversationnels ferment les curseurs par conception. Les développeurs doivent concevoir en conséquence pour éviter toute fermeture inattendue des curseurs.


26) Quels sont les différents types d’espaces table dans DB2 ?

DB2 prend en charge plusieurs types d’espaces table, chacun optimisé pour des cas d’utilisation spécifiques :

  • Espace de table simple : Autorise plusieurs tables, mais est désormais obsolète.
  • Espace table segmenté : Regroupe les données en segments, idéal pour plusieurs tables.
  • Espace table partitionné : Divise les grandes tables en partitions pour plus d'évolutivité.
  • Espace de table universel (UTS) : Combine les avantages des espaces table segmentés et partitionnés, largement utilisés dans DB2 moderne.

Exemple : Un système de paie avec des millions de lignes bénéficie d'un espace table partitionné, permettant un accès parallèle et des performances de requête améliorées.


27) Comment DB2 gère-t-il les conflits de verrouillage et les blocages ?

Lorsque plusieurs transactions demandent des verrous incompatibles, DB2 détecte les conflits. Si les transactions forment un cycle d'attente, un blocage se produit. DB2 résout automatiquement ce problème en interrompant une transaction et en renvoyant un SQLCODE -911 ou -913. Par exemple, si la transaction A met à jour la ligne X et attend la ligne Y, tandis que la transaction B met à jour Y et attend X, DB2 détecte le blocage et annule une transaction. Les meilleures pratiques incluent un ordre d'accès cohérent, des transactions plus courtes et des niveaux d'isolation appropriés pour minimiser les blocages.


28) Qu'est-ce que la stabilité du curseur et en quoi diffère-t-elle de la lecture répétable ?

La stabilité du curseur (CS) est un niveau d'isolation dans DB2 où un verrou de ligne est maintenu uniquement lorsque le curseur est positionné sur la ligne. Une fois déplacé, le verrou est libéré. ​​Cela permet une meilleure concurrence, mais risque de provoquer des lectures non répétables. La lecture répétable (RR), quant à elle, maintient les verrous sur toutes les lignes éligibles jusqu'à la validation (COMMIT), empêchant ainsi les lectures non répétables mais réduisant la concurrence.

Niveau d'isolement Caractéristiques Case Study
CS Les verrous sont libérés rapidement, plus de concurrence Rapports avec un minimum de conflits
RR Verrous maintenus jusqu'à COMMIT, lectures cohérentes Les transactions financières

29) Que sont les packages dans DB2 et comment améliorent-ils la modularité ?

Un package contient le chemin d'accès et le code exécutable des instructions SQL d'un DBRM unique. Les packages améliorent la modularité en permettant la revalidation de programmes ou de modules individuels sans affecter l'ensemble du plan applicatif. Par exemple, dans un système bancaire, si le module de prêt est modifié, seul son package est revalidé, laissant les autres packages intacts. Cela réduit les temps d'arrêt et évite de revalider tous les DBRM ensemble.


30) Où est stockée la sortie de la commande EXPLAIN et comment est-elle interprétée ?

La commande EXPLAIN stocke sa sortie dans le PLAN_TABLE Sous le schéma de l'utilisateur. Cette table contient des informations telles que les index choisis, les méthodes de jointure, les opérations de tri et les coûts estimés. Par exemple, si EXPLAIN affiche une analyse complète de la table malgré la disponibilité d'un index, cela peut indiquer des statistiques de catalogue obsolètes ou des prédicats de requête inefficaces. En interprétant PLAN_TABLE, les administrateurs de bases de données peuvent décider de créer de nouveaux index, de collecter des statistiques ou de réécrire les requêtes à des fins d'optimisation.


31) Quelle est la différence entre les verrous exclusifs, partagés et de mise à jour ?

  • Verrouillage exclusif (X) : Une seule transaction peut lire ou écrire ; bloque les autres.
  • Verrou partagé (S) : Plusieurs transactions peuvent être lues mais pas écrites.
  • Verrouillage de mise à jour (U) : Utilisé pour éviter les blocages lors de la mise à niveau du partagé vers l'exclusif.

Exemple : Dans un système de réservation de billets d'avion, un verrou partagé permet à plusieurs agents de consulter la disponibilité des sièges. Cependant, une fois un siège réservé, un verrou exclusif garantit qu'aucune autre transaction ne le modifie simultanément. Les verrous de mise à jour entrent en jeu lorsque le système anticipe une transition de la lecture à la mise à jour.


32) Comment DB2 garantit-il une haute disponibilité et une reprise après sinistre ?

DB2 prend en charge la haute disponibilité via HADR (Reprise après sinistre à haute disponibilité)La technologie HADR réplique les données d'une base de données principale vers une base de données de secours, garantissant ainsi un temps d'arrêt minimal en cas de panne. De plus, DB2 offre expédition de journaux, clustering de basculement et utilitaires de sauvegarde/restaurationPar exemple, dans un système bancaire mondial, la solution HADR garantit qu'en cas de défaillance du centre de données principal, le système de secours prend le relais de manière transparente, minimisant ainsi les pertes de transactions. Des facteurs tels que le mode de synchronisation (synchrone ou asynchrone) déterminent les compromis entre performances et temps de récupération.


33) Quels sont les avantages et les inconvénients de l’utilisation d’espaces table partitionnés ?

Les tablespaces partitionnés divisent une grande table sur plusieurs partitions, améliorant ainsi la facilité de gestion et les performances.

Avantages :

  • Traitement des requêtes parallèles.
  • Sauvegarde et récupération plus faciles.
  • Évolutivité pour des milliards de lignes.

Désavantages:

  • Administration complexe.
  • Potentiel biais si la clé de partitionnement est mal choisie.

Exemple : Dans une entreprise de télécommunications stockant des enregistrements d'appels, le partitionnement par mois garantit que les requêtes et les tâches de maintenance fonctionnent sur des sous-ensembles de données gérables.


34) Comment DB2 gère-t-il le réglage des performances des requêtes ?

Le réglage de DB2 implique l'analyse des plans d'exécution des requêtes, l'optimisation des index et l'ajustement des paramètres de la base de données. L'optimiseur de DB2 joue un rôle central, mais les administrateurs de bases de données doivent s'assurer que les statistiques sont à jour. Les techniques de réglage courantes incluent :

  • Création d'index composites.
  • Réécrire les requêtes avec EXISTS au lieu de IN.
  • Utilisation du partitionnement pour les grandes tables.

Par exemple, une requête analysant des millions de lignes peut être considérablement améliorée en ajoutant un index sur les colonnes fréquemment filtrées. Des outils comme EXPLIQUE et db2advis aider à identifier les opportunités d’optimisation.


35) Quels sont les différents types de niveaux d’isolement dans DB2 ?

DB2 fournit plusieurs niveaux d'isolation pour équilibrer la concurrence et la cohérence :

  • Lecture répétable (RR) : Empêche les lectures sales, non répétables et fantômes.
  • Stabilité de lecture (RS) : Empêche les lectures non répétables mais autorise les lectures fantômes.
  • Stabilité du curseur (CS) : Empêche uniquement les lectures sales.
  • Lecture non validée (UR) : Permet des lectures sales, concurrence la plus élevée.
Niveau d'isolement Lectures sales Lectures non répétables Lectures fantômes
RR Non Non Non
RS Non Non Oui
CS Non Oui Oui
UR Oui Oui Oui

36) Quand faut-il utiliser des index dans DB2 et quels sont leurs inconvénients ?

Les index permettent d'améliorer les performances des requêtes en fournissant des chemins d'accès plus rapides. Ils sont particulièrement utiles pour les clauses WHERE, les jointures et les opérations ORDER BY. Cependant, ils entraînent également une surcharge lors des opérations INSERT, UPDATE et DELETE, car les index doivent être maintenus. Par exemple, un index sur EMP_ID accélère les recherches dans un système de paie, mais peut ralentir les insertions par lots. La surindexation est à éviter, car elle consomme de l'espace de stockage supplémentaire et dégrade les performances.


37) Expliquez la différence entre SQL statique et dynamique dans DB2.

  • SQL statique : Les instructions SQL sont compilées et liées avant l'exécution. Elles offrent de meilleures performances et une meilleure stabilité.
  • SQL dynamique : Les instructions sont construites et préparées au moment de l'exécution, ce qui permet une certaine flexibilité mais entraîne une surcharge.

Exemple :

  • Le SQL statique convient aux systèmes OLTP où les requêtes sont prévisibles.
  • Le SQL dynamique est utile dans les applications de reporting où les requêtes sont générées en fonction des entrées utilisateur.
Aspect SQL statique SQL dynamique
Performance Plus rapide Ralentissez
Souplesse Limité Haute
Case Study Transactions de base Rapports ponctuels

38) Comment DB2 gère-t-il les opérations de sauvegarde et de récupération ?

DB2 fournit des utilitaires tels que SAUVEGARDE DE LA BASE DE DONNÉES et RESTAURER LA BASE DE DONNÉES pour se protéger contre la perte de données. Les sauvegardes peuvent être complet, incrémental, ou deltaLa récupération utilise les journaux de transactions pour restaurer la base de données à un état cohérent. Par exemple, en cas de panne matérielle, un administrateur de base de données peut restaurer la sauvegarde la plus récente et appliquer les journaux pour récupérer toutes les transactions validées. Les modèles de récupération incluent la récupération progressive, garantissant une perte de données minimale. Le choix entre les sauvegardes en ligne et hors ligne dépend des exigences de disponibilité.


39) Quels sont les avantages et les limites de l’utilisation de procédures stockées dans DB2 ?

Les procédures stockées encapsulent SQL et la logique procédurale à l'intérieur de la base de données.

Avantages :

  • Performances améliorées (la logique est plus proche des données).
  • Réutilisation du code et modularité.
  • Sécurité renforcée grâce à un accès contrôlé.

Limitations:

  • Plus difficile à déboguer.
  • Problèmes de portabilité entre les plateformes.

Exemple : Une procédure stockée pour le calcul des salaires réduit le trafic réseau en exécutant des jointures complexes dans DB2 plutôt que dans la couche applicative. Cependant, si la logique métier change fréquemment, la maintenance des procédures stockées peut devenir plus complexe que celle du code applicatif.


40) Pouvez-vous expliquer les modes de récupération après sinistre à haute disponibilité (HADR) dans DB2 ?

DB2 HADR prend en charge plusieurs modes de synchronisation :

  • Syncchronologique (SYNC) : Aucune perte de données, latence plus élevée.
  • Près-Synchronous (NEARSYNC) : Perte minimale, latence modérée.
  • Asynchrone (ASYNC) : Performances supérieures, risque de perte de données.
  • Super asynchrone (SUPERASYNC) : Performance maximale, risque de perte maximal.
Mode Performance Perte de données Case Study
SYNC Faible Aucun Services bancaires
PROCHE SYNCHRONISATION Moyenne Un petit peu Droit des assurances
ASYNC Haute Possible E-commerce
SUPERASYNCHRONISATION Très élevé Probable Analytique

Le choix dépend de l’équilibre entre la performance et les niveaux de risque acceptables.


41) En quoi DB2 LUW diffère-t-il de DB2 sur z/OS ?

DB2 existe en deux versions principales : DB2 pour Linux, UNIX, Windows (LUW) et DB2 pour z/OS (mainframes). Bien qu'ils partagent les normes et l'architecture SQL, ils servent des environnements différents. DB2 LUW est conçu pour les systèmes distribués et prend en charge les charges de travail modernes telles que l'analyse, l'intégration de l'IA et les déploiements cloud. DB2 z/OS, quant à lui, est optimisé pour les transactions OLTP à très haut volume, prenant en charge des milliers d'utilisateurs simultanés avec un temps d'arrêt quasi nul. Par exemple, une banque multinationale peut utiliser DB2 z/OS pour le traitement de ses transactions principales tout en exploitant DB2 LUW pour ses charges de travail de reporting et d'analyse.


42) Quels facteurs influencent le plus les performances des requêtes DB2 ?

Les performances des requêtes DB2 dépendent de plusieurs facteurs, notamment la conception de la base de données, les stratégies d'indexation, la formulation des requêtes et la disponibilité des ressources système. Des index mal conçus, des statistiques de catalogue obsolètes et des jointures excessives peuvent dégrader considérablement les performances. De plus, l'allocation des pools de mémoire tampon, les conflits de verrous et les goulots d'étranglement des E/S influencent également la vitesse des requêtes. Par exemple, une requête utilisant IN sur un grand ensemble de données peut s'exécuter plus lentement que sur un ensemble utilisant EXISTS, car DB2 optimise EXISTS différemment. L'utilisation régulière de RUNSTATS, RÉORGANISATION, et la réécriture des requêtes sont essentielles pour maintenir les performances.


43) Expliquez la différence entre le partitionnement d’espace table et le partitionnement de table dans DB2.

Bien que souvent confondus, ces concepts diffèrent en termes de portée.

  • Partitionnement de l'espace table : Divise les données au niveau du stockage, en répartissant des parties d'un espace table sur plusieurs partitions.
  • Partitionnement de table : Divise une table unique en partitions en fonction des valeurs des colonnes (par exemple, plage, hachage).
Fonctionnalité Partitionnement de l'espace table Partitionnement de table
Domaine Stockage physique Organisation logique des tables
Objet Facilité de gestion, évolutivité Optimisation des requêtes
Exemple Fractionnement des fichiers de stockage Répartition des ventes par année

Les deux méthodes améliorent l’évolutivité, mais le partitionnement de table est particulièrement puissant pour les requêtes parallèles et l’élagage des partitions.


44) Quels sont les différents types de déclencheurs dans DB2 et leurs cas d'utilisation ?

DB2 prend en charge plusieurs types de déclencheurs qui automatisent les actions en réponse aux modifications de données :

  • AVANT Déclenchement : S'exécute avant une INSERT, UPDATE ou DELETE pour appliquer les règles métier.
  • APRÈS Déclencheur : S'exécute après des modifications, souvent utilisé pour l'audit.
  • AU LIEU DE Déclencheur : S'applique aux vues, permettant des modifications sur les vues en les redirigeant vers les tables de base.

Exemple : Un déclencheur BEFORE permet de vérifier que les valeurs salariales sont positives avant l'insertion, tandis qu'un déclencheur AFTER permet d'enregistrer chaque suppression dans une table d'audit. Ces déclencheurs améliorent l'intégrité des données et réduisent la dépendance au code applicatif.


45) Comment DB2 gère-t-il la sécurité et l’authentification ?

DB2 renforce la sécurité via authentification, autorisation et privilègesL'authentification vérifie l'identité de l'utilisateur, souvent via le système d'exploitation, Kerberos ou l'intégration LDAP. L'autorisation détermine les droits d'accès d'un utilisateur, définis par des rôles, des groupes et des privilèges. Les privilèges peuvent être au niveau objet (tables, vues) ou système (création de bases de données). Par exemple, un développeur peut disposer du privilège SELECT sur une table, mais ne pas disposer des droits INSERT. DB2 prend également en charge la sécurité au niveau des lignes et le chiffrement des données (au repos et en transit). Cette approche multicouche garantit la conformité aux politiques et réglementations de sécurité de l'entreprise, telles que le RGPD et la loi HIPAA.


46) Quels sont les avantages de l’utilisation de tables de requêtes matérialisées (MQT) dans DB2 ?

Les tables de requêtes matérialisées (MQT) stockent physiquement les résultats des requêtes, de manière similaire aux vues indexées dans d'autres SGBDR.

Avantages :

  • Réduisez le temps de réponse des requêtes en précalculant les résultats.
  • Prise en charge de la réécriture des requêtes, où DB2 remplace automatiquement les requêtes par des résultats MQT équivalents.
  • Optimisez les charges de travail OLAP avec des données pré-agrégées.

Exemple : Une application de reporting des ventes peut créer un MQT résumant les ventes par région et par mois. Au lieu de recalculer les totaux à chaque fois, les requêtes récupèrent les résultats du MQT prédéfini, ce qui réduit considérablement le temps d'exécution. Les MQT sont particulièrement efficaces dans les environnements d'entreposage de données.


47) Expliquez la sécurité au niveau des lignes et comment elle peut être implémentée dans DB2.

La sécurité au niveau des lignes restreint l'accès à certaines lignes d'une table en fonction des rôles ou des conditions des utilisateurs. DB2 l'implémente à l'aide de autorisations de ligneLes administrateurs définissent des prédicats qui filtrent les lignes visibles par utilisateur. Par exemple :

CREATE PERMISSION emp_perm ON EMPLOYEE
FOR ROWS WHERE DEPT_ID = (SELECT DEPT_ID FROM USER_DEPARTMENTS WHERE USER_ID = SESSION_USER)
ENFORCED FOR ALL ACCESS ENABLE;

Ici, les employés ne voient que les lignes appartenant à leur service. Cette approche améliore la conformité en garantissant que les données sensibles, telles que les dossiers RH ou financiers, ne sont accessibles qu'au personnel autorisé.


48) Qu'est-ce que RUNSTATS dans DB2 et pourquoi est-ce important ?

RUNSTATS est un utilitaire qui met à jour les statistiques du catalogue des tables et des index. L'optimiseur utilise ces statistiques pour déterminer les chemins d'accès efficaces. Sans statistiques précises, DB2 peut opter pour des plans sous-optimaux, comme effectuer une analyse de table au lieu d'utiliser un index. Par exemple, après le chargement en masse de millions de lignes dans une table de ventes, l'exécution de RUNSTATS garantit que l'optimiseur reconnaît la nouvelle distribution des données. L'exécution régulière de RUNSTATS, notamment après des modifications importantes des données, est essentielle pour garantir des performances de requête constantes et des décisions d'optimisation précises.


49) Comment optimiser DB2 pour les charges de travail OLAP par rapport aux charges de travail OLTP ?

Les charges de travail OLAP (analytiques) et OLTP (transactionnelles) ont des exigences différentes.

  • Optimisation OLTP : Concentrez-vous sur la concurrence, l’indexation pour des recherches rapides, le verrouillage au niveau des lignes et les schémas normalisés.
  • Optimisation OLAP : Mettez l’accent sur les analyses volumineuses, les agrégations, le partitionnement, les tables de requêtes matérialisées et la dénormalisation.

Exemple :

  • Un système OLTP pour le secteur bancaire utilise des index sur les identifiants de compte pour des mises à jour rapides.
  • Un système OLAP pour l'analyse des ventes utilise des tables partitionnées par année et des MQT pour les rapports pré-agrégés.

L'équilibrage de ces charges de travail nécessite souvent des systèmes distincts ou des fonctionnalités de gestion de charge de travail dans DB2.


50) Quels sont les avantages et les inconvénients du stockage XML natif DB2 ?

DB2 prend en charge le stockage XML natif à l'aide du Type de données XML, permettant le stockage structuré et l'interrogation de documents XML.

Avantages :

  • Stockez et interrogez du XML sans le décomposer en tables relationnelles.
  • La prise en charge de XQuery et SQL/XML permet une récupération flexible des données.
  • Idéal pour les applications échangeant des données en XML (par exemple, les systèmes basés sur SOA).

Désavantages:

  • Surcharge de stockage plus élevée par rapport aux structures relationnelles.
  • L'interrogation de XML profondément imbriqués peut être plus lente.

Exemple : Un système de santé peut stocker les dossiers des patients sous forme de documents XML pour capturer des structures hiérarchiques complexes, mais les administrateurs de bases de données doivent surveiller les performances et concevoir les index avec soin.


🔍 Questions d'entretien DB2 les plus fréquentes avec des scénarios concrets et des réponses stratégiques

Voici 10 questions d'entretien DB2 soigneusement sélectionnées, accompagnées d'exemples de réponses convaincants. Elles combinent des éléments basés sur les connaissances, le comportement et la situation pour refléter les attentes des recruteurs lors d'entretiens professionnels.


1) Quelles sont les principales différences entre DB2 et d’autres systèmes de bases de données relationnelles comme Oracle ou SQL Server ?

Attendu du candidat : L'intervieweur souhaite évaluer la connaissance des fonctionnalités uniques de DB2 et si le candidat peut le différencier de ses concurrents.

Exemple de réponse:
DB2 offre des performances élevées pour les charges de travail transactionnelles et analytiques, avec une prise en charge robuste des mainframes et des systèmes distribués. Contrairement à SQL Server, DB2 offre une intégration plus étroite avec les environnements z/OS. Comparé à OracleDB2 est souvent plus économique en termes de licences et offre des fonctionnalités telles que pureXML pour la gestion native des données XML. Ces atouts rendent DB2 particulièrement précieux pour les entreprises qui exigent évolutivité et fiabilité sur leurs systèmes critiques.


2) Pouvez-vous expliquer comment DB2 gère les mécanismes de concurrence et de verrouillage ?

Attendu du candidat : Compréhension de l'isolement des transactions et de l'intégrité des données dans DB2.

Exemple de réponse:
DB2 utilise le verrouillage multigranulaire pour gérer la concurrence, ce qui signifie que les verrous peuvent être appliqués à différents niveaux, comme la ligne, la page ou la table. Il prend en charge les niveaux d'isolation tels que la lecture répétable, la stabilité en lecture et la stabilité du curseur pour équilibrer performances et cohérence des données. Le moteur de base de données utilise également l'escalade de verrous lorsqu'un nombre trop élevé de verrous sont demandés à un niveau de granularité élevé, les convertissant en verrous de niveau supérieur afin d'économiser les ressources système.


3) Parlez-moi d'une situation où vous avez dû résoudre un problème critique de performances de DB2. Quelle a été votre approche ?

Attendu du candidat : Capacité de résolution de problèmes et de dépannage systématique.

Exemple de réponse:
Dans mon dernier poste, nous avons constaté un ralentissement important des traitements par lots. J'ai commencé par vérifier les catalogues système et les instantanés du moniteur de performances afin d'identifier les requêtes coûteuses. J'ai ensuite examiné les chemins d'accès avec EXPLAIN et découvert que des index manquants entraînaient des analyses complètes des tables. La création d'index ciblés et la mise à jour des statistiques m'ont permis de réduire le temps d'exécution de 70 %. Cela a renforcé l'importance d'une surveillance et d'un réglage proactifs dans les environnements DB2.


4) Comment concevriez-vous une base de données DB2 pour prendre en charge à la fois les charges de travail OLTP et analytiques ?

Attendu du candidat : Compréhension de l'optimisation de la charge de travail hybride.

Exemple de réponse:
J'implémenterais un schéma normalisé pour l'OLTP afin de préserver l'intégrité des données et d'assurer un traitement rapide des transactions. Pour les charges de travail analytiques, je concevrais des tables de requêtes matérialisées et utiliserais des stratégies de partitionnement pour améliorer les performances des requêtes. Le stockage en colonnes BLU Acceleration de DB2 pourrait également être exploité pour accélérer les requêtes analytiques. Cette approche garantit l'optimisation de chaque type de charge de travail sans compromettre la stabilité du système.


5) Pouvez-vous décrire un projet difficile dans lequel vous avez dû migrer une base de données vers DB2 ?

Attendu du candidat : Expérience des migrations complexes et adaptabilité.

Exemple de réponse:
« À un poste précédent, je faisais partie d'une équipe chargée de migrer un Oracle Base de données vers DB2 sur z/OS. Le défi consistait à traduire les procédures PL/SQL en SQL PL compatible DB2. Nous devions également gérer les différences de types de données et de stratégies d'indexation. Pour assurer une migration fluide, nous avons créé des environnements de test pour valider les fonctionnalités, optimisé les requêtes pour DB2 et élaboré des plans de basculement détaillés afin de minimiser les temps d'arrêt. Le projet a été un succès et a permis de réduire considérablement les coûts de licence.


6) Comment gérez-vous des délais serrés lorsque plusieurs projets liés à DB2 se disputent votre attention ?

Attendu du candidat : Compétences en gestion du temps et en priorisation.

Exemple de réponse:
J'évalue d'abord l'impact de chaque projet sur l'activité. Par exemple, une interruption de production est toujours prioritaire sur une demande de développement. Je communique ensuite clairement avec les parties prenantes sur des délais réalistes et j'utilise des outils de planification pour optimiser l'allocation du temps. Dans mon précédent poste, cette méthode m'a permis de gérer à la fois les tâches critiques d'optimisation des bases de données et les projets de mise à niveau à long terme sans compromettre la qualité.


7) Quelles stratégies utilisez-vous pour garantir la sécurité de la base de données DB2 et sa conformité aux réglementations ?

Attendu du candidat : Connaissance des meilleures pratiques de sécurité et des cadres de conformité.

Exemple de réponse:
Je respecte le principe du moindre privilège en veillant à ce que les utilisateurs ne disposent que des accès nécessaires à leurs rôles. J'active les fonctionnalités d'audit dans DB2 pour suivre l'activité des utilisateurs et je configure le chiffrement au repos et en transit. Dans les secteurs où les exigences de conformité sont strictes, je veille également à ce que les politiques soient conformes aux normes telles que HIPAA ou PCI DSS. L'application régulière de correctifs et l'analyse des vulnérabilités font partie intégrante de mes pratiques en matière de sécurité.


8) Imaginez un scénario où une requête DB2 prendrait beaucoup plus de temps que prévu. Quelles mesures prendriez-vous pour l'optimiser ?

Attendu du candidat : Approche structurée du réglage des requêtes.

Exemple de réponse:
Ma première étape consiste à utiliser l'outil DB2 EXPLAIN pour comprendre le chemin d'accès. Si l'optimiseur choisit des chemins inefficaces, j'envisagerais de mettre à jour les statistiques des tables. Je réviserais ensuite l'indexation, le partitionnement et les méthodes de jointure. Si nécessaire, j'envisagerais de réécrire les requêtes pour simplifier la logique. Dans un cas, le simple ajout d'un index composite a permis de réduire le temps d'exécution d'une requête de 12 minutes à moins de 30 secondes.


9) Comment vous tenez-vous au courant de la technologie DB2 et des tendances du secteur ?

Attendu du candidat : Démontre un engagement envers l’apprentissage continu.

Exemple de réponse:
« Je reste informé en suivant IBMJe consulte les blogs officiels DB2, participe à des forums comme IDUG et participe à des conférences sectorielles. J'ai également pour habitude de commenter IBM Les Redbooks, qui fournissent des analyses techniques approfondies. Dans mon poste précédent, j'animais des sessions de partage de connaissances en équipe, où nous discutions des nouvelles fonctionnalités et des meilleures pratiques de DB2. Ces activités nous ont permis de garder une longueur d'avance sur les défis en matière de performance et de sécurité.


10) Pouvez-vous décrire comment vous avez géré un désaccord avec un membre de l’équipe concernant une décision de conception DB2 ?

Attendu du candidat : Capacité à résoudre les conflits de manière professionnelle.

Exemple de réponse:
Au début de ma carrière, j'ai travaillé au sein d'une équipe où il y avait un désaccord sur l'utilisation du partitionnement ou de l'indexation pour une table DB2 volumineuse. J'ai suggéré de mettre en place un test de performance contrôlé afin de comparer les deux options avec des charges de travail réalistes. Les résultats ont clairement montré que le partitionnement offrait une meilleure évolutivité pour notre cas d'utilisation. En nous basant sur des données plutôt que sur des opinions, nous sommes parvenus à un consensus et avons maintenu une collaboration positive.