Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Optimisation des Requêtes | Optimisation des Requêtes.Indexes
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Optimisation SQL et Fonctionnalités de Requête

bookDéfi : Optimisation des Requêtes

Supposons que nous souhaitions récupérer uniquement les numéros de compte qui ont effectué au moins une transaction.

Dans cette tâche, nous avons une requête qui n'est pas optimisée. Votre objectif est de la réécrire de manière plus optimale.

Voici une liste des principales techniques de réécriture de requêtes pour améliorer l'optimisation :

  1. Spécifier explicitement les colonnes : au lieu d'utiliser le caractère générique (*), mentionner explicitement les noms de colonnes dans les requêtes pour de meilleures performances, lisibilité et maintenabilité ;

  2. Minimiser les sous-requêtes : réduire l'utilisation des sous-requêtes pour optimiser les performances. Envisager des alternatives comme les jointures ou les tables dérivées pour éviter la complexité et la surcharge ;

  3. Éviter la répétition des opérateurs IN : limiter l'utilisation de l'opérateur IN dans les requêtes pour éviter l'impact sur les performances. Privilégier l'utilisation des clauses JOIN ou EXISTS pour des plans d'exécution plus efficaces ;

  4. Organiser logiquement les jointures : commencer les jointures SQL par la table principale puis joindre les tables associées afin d'optimiser l'organisation de la requête et l'optimisation par le moteur de base de données ;

  5. Utiliser des conditions WHERE restrictives : améliorer les performances en incluant des conditions restrictives dans la clause WHERE pour filtrer les lignes et accélérer l'exécution ;

  6. Refactoriser le code en procédures stockées ou fonctions : encapsuler les segments de code répétitifs dans des procédures stockées ou des fonctions définies par l'utilisateur pour la réutilisabilité, la modularité et une maintenance facilitée. Cela permet de réduire la redondance et d'optimiser les requêtes SQL.

Tâche

Swipe to start coding

Votre tâche consiste à écrire une requête qui retourne une liste de tous les numéros de compte ayant effectué au moins une transaction (transfert d'argent vers un autre compte). Les résultats doivent être triés par ordre croissant de numéro de compte.

Pour rendre votre requête plus efficace et lisible, suivez ces étapes :

  • Sélectionner uniquement la colonne account_number ;
  • Utiliser une clause INNER JOIN entre les tables BankAccounts et Transactions ;
  • Ne pas utiliser l'opérateur IN ni de sous-requêtes ;
  • Trier le résultat par account_number par ordre croissant.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

bookDéfi : Optimisation des Requêtes

Glissez pour afficher le menu

Supposons que nous souhaitions récupérer uniquement les numéros de compte qui ont effectué au moins une transaction.

Dans cette tâche, nous avons une requête qui n'est pas optimisée. Votre objectif est de la réécrire de manière plus optimale.

Voici une liste des principales techniques de réécriture de requêtes pour améliorer l'optimisation :

  1. Spécifier explicitement les colonnes : au lieu d'utiliser le caractère générique (*), mentionner explicitement les noms de colonnes dans les requêtes pour de meilleures performances, lisibilité et maintenabilité ;

  2. Minimiser les sous-requêtes : réduire l'utilisation des sous-requêtes pour optimiser les performances. Envisager des alternatives comme les jointures ou les tables dérivées pour éviter la complexité et la surcharge ;

  3. Éviter la répétition des opérateurs IN : limiter l'utilisation de l'opérateur IN dans les requêtes pour éviter l'impact sur les performances. Privilégier l'utilisation des clauses JOIN ou EXISTS pour des plans d'exécution plus efficaces ;

  4. Organiser logiquement les jointures : commencer les jointures SQL par la table principale puis joindre les tables associées afin d'optimiser l'organisation de la requête et l'optimisation par le moteur de base de données ;

  5. Utiliser des conditions WHERE restrictives : améliorer les performances en incluant des conditions restrictives dans la clause WHERE pour filtrer les lignes et accélérer l'exécution ;

  6. Refactoriser le code en procédures stockées ou fonctions : encapsuler les segments de code répétitifs dans des procédures stockées ou des fonctions définies par l'utilisateur pour la réutilisabilité, la modularité et une maintenance facilitée. Cela permet de réduire la redondance et d'optimiser les requêtes SQL.

Tâche

Swipe to start coding

Votre tâche consiste à écrire une requête qui retourne une liste de tous les numéros de compte ayant effectué au moins une transaction (transfert d'argent vers un autre compte). Les résultats doivent être triés par ordre croissant de numéro de compte.

Pour rendre votre requête plus efficace et lisible, suivez ces étapes :

  • Sélectionner uniquement la colonne account_number ;
  • Utiliser une clause INNER JOIN entre les tables BankAccounts et Transactions ;
  • Ne pas utiliser l'opérateur IN ni de sous-requêtes ;
  • Trier le résultat par account_number par ordre croissant.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
single

single

some-alt