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
Techniques Avancées en SQL

bookDéfi : Optimisation des Requêtes

Découvrons deux tables : BankAccounts et une table supplémentaire nommée Transactions.

Table BankAccounts

Table Transactions

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 tâche consiste à 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 des 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 afin d'é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. Préférer 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

Veuillez réécrire la requête de manière plus optimale. Veillez à obtenir uniquement les numéros de compte ayant effectué au moins une transaction (ayant transféré de l'argent vers un autre compte), triés par ordre croissant.

Remarque

Utilisez le type de jointure LEFT ou INNER pour réaliser cette tâche.

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

Suggested prompts:

Can you show me the unoptimized query?

What would an optimized query look like for this task?

Can you explain why the optimized query is better?

close

Awesome!

Completion rate improved to 4.35

bookDéfi : Optimisation des Requêtes

Glissez pour afficher le menu

Découvrons deux tables : BankAccounts et une table supplémentaire nommée Transactions.

Table BankAccounts

Table Transactions

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 tâche consiste à 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 des 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 afin d'é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. Préférer 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

Veuillez réécrire la requête de manière plus optimale. Veillez à obtenir uniquement les numéros de compte ayant effectué au moins une transaction (ayant transféré de l'argent vers un autre compte), triés par ordre croissant.

Remarque

Utilisez le type de jointure LEFT ou INNER pour réaliser cette tâche.

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 !

close

Awesome!

Completion rate improved to 4.35
Section 2. Chapitre 7
single

single

some-alt