Contenu du cours
Techniques Avancées en SQL
Techniques Avancées en SQL
Défi : Optimisation des Requêtes
Découvrons deux tables : BankAccounts
et une table supplémentaire nommée Transactions
.
Table BankAccounts
Table des transactions
Supposons que nous voulons 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 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 :
-
Spécifiez explicitement les colonnes : Au lieu d'utiliser le caractère générique (
*
), mentionnez explicitement les noms de colonnes dans les requêtes pour une meilleure performance, lisibilité et maintenabilité ; -
Minimisez les sous-requêtes : Réduisez l'utilisation des sous-requêtes pour optimiser les performances des requêtes. Envisagez des alternatives comme les jointures ou les tables dérivées pour éviter la complexité et la surcharge ;
-
Évitez les opérateurs IN répétés : Limitez l'utilisation de l'opérateur
IN
dans les requêtes pour éviter l'impact sur les performances. Envisagez plutôt d'utiliser les clausesJOIN
ouEXISTS
pour des plans d'exécution plus efficaces ; -
Organisez les jointures logiquement : Commencez les jointures SQL avec la table principale puis joignez avec les tables associées pour optimiser l'organisation des requêtes et l'optimisation du moteur de base de données ;
-
Utilisez des conditions WHERE restrictives : Améliorez les performances des requêtes en incluant des conditions restrictives dans la clause
WHERE
pour filtrer les lignes et améliorer la vitesse d'exécution ; -
Refactorisez le code en procédures stockées ou fonctions : Encapsulez 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é du code, la modularité et une maintenance plus facile. Cela peut réduire la redondance et optimiser les requêtes SQL.
Swipe to start coding
Veuillez réécrire la requête de manière plus optimale. Faites attention au fait que nous devons obtenir uniquement les numéros de compte qui ont effectué au moins une transaction (transféré de l'argent vers un autre compte) triés par ordre croissant.
Note
Utilisez le type de jointure
LEFT
ouINNER
pour accomplir cette tâche.
Solution
Merci pour vos commentaires !
Défi : Optimisation des Requêtes
Découvrons deux tables : BankAccounts
et une table supplémentaire nommée Transactions
.
Table BankAccounts
Table des transactions
Supposons que nous voulons 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 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 :
-
Spécifiez explicitement les colonnes : Au lieu d'utiliser le caractère générique (
*
), mentionnez explicitement les noms de colonnes dans les requêtes pour une meilleure performance, lisibilité et maintenabilité ; -
Minimisez les sous-requêtes : Réduisez l'utilisation des sous-requêtes pour optimiser les performances des requêtes. Envisagez des alternatives comme les jointures ou les tables dérivées pour éviter la complexité et la surcharge ;
-
Évitez les opérateurs IN répétés : Limitez l'utilisation de l'opérateur
IN
dans les requêtes pour éviter l'impact sur les performances. Envisagez plutôt d'utiliser les clausesJOIN
ouEXISTS
pour des plans d'exécution plus efficaces ; -
Organisez les jointures logiquement : Commencez les jointures SQL avec la table principale puis joignez avec les tables associées pour optimiser l'organisation des requêtes et l'optimisation du moteur de base de données ;
-
Utilisez des conditions WHERE restrictives : Améliorez les performances des requêtes en incluant des conditions restrictives dans la clause
WHERE
pour filtrer les lignes et améliorer la vitesse d'exécution ; -
Refactorisez le code en procédures stockées ou fonctions : Encapsulez 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é du code, la modularité et une maintenance plus facile. Cela peut réduire la redondance et optimiser les requêtes SQL.
Swipe to start coding
Veuillez réécrire la requête de manière plus optimale. Faites attention au fait que nous devons obtenir uniquement les numéros de compte qui ont effectué au moins une transaction (transféré de l'argent vers un autre compte) triés par ordre croissant.
Note
Utilisez le type de jointure
LEFT
ouINNER
pour accomplir cette tâche.
Solution
Merci pour vos commentaires !