Je cherche à améliorer les performances de certains SQL, actuellement les CTE sont utilisés et référencés plusieurs fois dans le script. Aurais-je des améliorations en utilisant une variable de table à la place? (Impossible d'utiliser une table temporaire car le code est dans les fonctions).Quels sont les avantages/inconvénients de l'utilisation d'un CTE?
Répondre
Vous aurez vraiment besoin de test de performance - Il n'y a pas de réponse Oui/Non. Selon le lien d'Andy Living ci-dessus, un CTE est simplement un raccourci pour une requête ou une sous-requête.
Si vous l'appelez deux fois ou plus dans la même fonction, vous obtiendrez peut-être de meilleures performances si vous remplissez une variable de table et que vous la joignez à/select. Cependant, comme les variables de table occupent de l'espace quelque part, et n'ont pas d'index/statistiques (à l'exception de toute clé primaire déclarée sur la variable table), il n'y a pas moyen de dire lequel sera le plus rapide. Ils ont tous les deux des coûts et des économies, et le meilleur moyen dépend des données qu'ils collectent et de ce qu'ils en font. J'ai été dans votre situation, et après avoir testé la vitesse sous diverses conditions - Certaines fonctions utilisaient des CTE, et d'autres utilisaient des variables de table.
Probablement pas. Les CTE sont particulièrement bons pour interroger les données pour les structures arborescentes.
- 1. Quels sont les attributs?
- 2. Quels sont les services .NET?
- 3. Quels sont les avantages de Struts
- 4. Quels sont les avantages/inconvénients de py2exe
- 5. Quels sont les principaux concurrents de Servoy?
- 6. Quels sont les fichiers .pidb de MonoDevelop?
- 7. Quels sont les types de données JavaScript?
- 8. Quels sont les codes de balayage pour:
- 9. Quels sont les inconvénients des méthodes statiques?
- 10. Quels sont les deuxièmes moments d'une région?
- 11. Quels sont les plugins recommandés pour Trac?
- 12. Quels sont les bons tutoriels Wireshark?
- 13. Quels sont les meilleurs thèmes Silverlight?
- 14. Quels sont les CMS pour mobile?
- 15. Quels sont les usages courants des bitarrays?
- 16. Apache Felix: Quels sont les bundles d'extension?
- 17. Quels sont les différents types d'échantillonneurs HLSL?
- 18. Quels sont les meilleurs projets OSS?
- 19. Quels sont les plugins jQuery "must have"?
- 20. Quels sont les avantages des différentes endiannesses?
- 21. Quels sont les navigateurs compatibles avec "! Important"?
- 22. Quels sont les symbos #if prédéfinis C#?
- 23. Quels sont les problèmes du modèle MVVM?
- 24. Quels sont les sites que les développeurs de .net visitent?
- 25. Quels sont les modèles pour les schémas de table DB?
- 26. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 27. sont-Common Table Expression (CTE) disponible dans SQL Server 2000
- 28. Quels sont les formats de fichier de cryptage standard?
- 29. Quels sont les outils de couverture de code pour Perl?
- 30. Quels sont les avantages de l'utilisation de OnAsyncPostBackError sur Page_Error
Voir l'explication détaillée de Craig Freedman pour SQL Server [link text] (http://blogs.msdn.com/craigfr/archive/2007/10/18/ctes-common-table-expressions.aspx) –