Dé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 :
-
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é ; -
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 ;
-
É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 clausesJOIN
ouEXISTS
pour des plans d'exécution plus efficaces ; -
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 ;
-
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 ; -
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.
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
ouINNER
pour réaliser cette tâche.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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?
Awesome!
Completion rate improved to 4.35
Dé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 :
-
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é ; -
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 ;
-
É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 clausesJOIN
ouEXISTS
pour des plans d'exécution plus efficaces ; -
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 ;
-
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 ; -
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.
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
ouINNER
pour réaliser cette tâche.
Solution
Merci pour vos commentaires !
Awesome!
Completion rate improved to 4.35single