Question

J'ai une requête qui exécute lentement. Je sais généralement de faire des performances plus rapides, limite jointures et essayez d'utiliser procs au lieu de requêtes droites. En raison des règles d'affaires, je ne peux pas utiliser procs. Je l'ai déjà coupé le nombre de jointures autant que je peux penser.

Quelle est la prochaine étape dans l'optimisation des requêtes?

Était-ce utile?

La solution

la meilleure chose à faire est d'aller au studio de gestion exécuter cette commande:

SET SHOWPLAN_ALL ON

puis exécutez votre requête réelle.

Vous ne recevrez pas votre jeu régulier de résultat de la requête. Il vous donnera le plan d'exécution (une liste très détaillée de ce que SQL Server fait pour transformer votre requête) dans un jeu de résultats. Regardez la sortie et essayer d'apprendre ce que cela signifie. Je suis généralement pour « SCAN », qui est une partie lente, et je l'essaie de réécrire utilise donc un index.

Autres conseils

Ajout d'index est probablement la première chose que vous pouvez faire pour améliorer les performances des requêtes et que vous avez pas mentionné.

Avez-vous regardé le plan d'exécution pour voir si cela pourrait être amélioré avec des indices supplémentaires?

En outre, vous devez vous assurer que vos requêtes sont rédigées de telle manière qu'ils peuvent utiliser tous les index sont présente efficacement (par exemple éviter des constructions non sargable, éviter *)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top