25 conseils pour améliorer les performances des requêtes SQL

Chaque client / Utilisateur souhaite toujours une réponse rapide à son processus de récupération de données. Nous devons donc concevoir une bonne base de données qui offre les meilleures performances lors de la manipulation des données, ce qui se traduit par les meilleures performances d’une application. Cependant, il n’y a pas de moyen simple de définir les meilleures performances, mais nous pouvons choisir plusieurs façons d’améliorer les performances des requêtes SQL, qui relèvent de diverses catégories telles que la création d’index, l’utilisation des jointures et la réécriture d’une sous-requête pour utiliser JOIN, etc.

En tant que développeur, nous savons que toute requête SQL peut être écrite de plusieurs manières, mais nous devons suivre les meilleures pratiques / techniques pour obtenir de meilleures performances de requête. Je mets en évidence certains d’entre eux ci-dessous:

1. L’utilisation EXISTE au lieu d’IN pour vérifier l’existence des données.
2. Évitez * dans l’instruction SELECT. Donnez le nom des colonnes dont vous avez besoin.
3. Choisissez le type de données approprié. Par exemple, Pour stocker des chaînes, utilisez varchar à la place du type de données texte. Utilisez le type de données texte, chaque fois que vous avez besoin de stocker des données volumineuses (plus de 8000 caractères).
4. Évitez nchar et nvarchar si possible car les deux types de données ne prennent que la double mémoire comme char et varchar.
5. Évitez NULL dans le champ de longueur fixe. En cas d’exigence de NULL, utilisez un champ de longueur variable (varchar) qui prend moins d’espace pour NULL.
6. Évitez D’avoir Une Clause. La clause Having est requise si vous souhaitez en outre filtrer le résultat d’une agrégation.
7. Créez des index Clusterisés et Non Clusterisés.
8. Gardez l’index clusterisé petit car les champs utilisés dans l’index clusterisé peuvent également être utilisés dans l’index non clusterisé.
9. La plupart des colonnes sélectives doivent être placées le plus à gauche dans la clé d’un index non groupé.
10. Supprimez les index inutilisés.
11. Il est préférable de créer des index sur des colonnes qui ont des valeurs entières au lieu de caractères. Les valeurs entières utilisent moins de surcharge que les valeurs de caractères.
12. Utilisez des jointures au lieu de sous-requêtes.
13. Utilisez les expressions WHERE pour limiter la taille des tables de résultats créées avec des jointures.
14. Utilisez TABLOCKX lors de l’insertion dans une table et TABLOCK lors de la fusion.
15. Utilisez AVEC (NOLOCK) lors de l’interrogation des données de n’importe quelle table.
16. Utilisez SET NOCOUNT ON et utilisez TRY-CATCH pour éviter les conditions de blocage.
17. Évitez les curseurs car les curseurs sont très lents en performance.
18. Utilisez la variable de table à la place de la table Temporaire. L’utilisation de tables temporaires nécessite une interaction avec la base de données TempDb, une tâche qui prend du temps.
19. Utilisez UNION ALL à la place de UNION si possible.
20. Utilisez le nom du schéma avant le nom des objets SQL.
21. Utilisez la procédure stockée pour les données fréquemment utilisées et les requêtes plus complexes.
22. Gardez la transaction aussi petite que possible car la transaction verrouille les données des tables de traitement et peut entraîner des blocages.
23. Évitez le préfixe « sp_ » avec le nom de procédure stockée défini par l’utilisateur car SQL server recherche d’abord la procédure définie par l’utilisateur dans la base de données principale et ensuite dans la base de données de session en cours.
24. Évitez d’utiliser une Sous-requête Scalaire Non corrélée. Utilisez cette requête comme une requête distincte au lieu d’une partie de la requête principale et stockez la sortie dans une variable, qui peut être référencée dans la requête principale ou une partie ultérieure du lot.
25. Évitez les fonctions à Valeurs de table à instructions Multiples (TVF). Les TVF à déclarations multiples sont plus coûteux que les TVF en ligne.

Bon apprentissage!

Write a Comment

Votre adresse e-mail ne sera pas publiée.