Existe-t-il une bonne pratique générale sur l'utilisation ou non des vues imbriquées? Existe-t-il un problème de performances lors de l'utilisation de vues imbriquées? Y a-t-il une meilleure pratique qui dit qu'il n'y a vraiment pas un coup de performance jusqu'à ce que vous ayez 4 couches ou plus de profondeur?Sql Server 2008 Vues d'imbrication
La raison pour laquelle je pose cette question est parce que j'ai du mal à les utiliser ou non. Il n'est pas rare d'obtenir une demande de rapport dont la seule façon d'accéder à cette information est de joindre 20 tables ou plus ensemble. Les champs ne sont pas retournés à partir de toutes les tables mais sont nécessaires pour sélectionner les données correctes. Dans ce cas, j'aime imbriquer les vues et réutiliser les vues de niveau inférieur pour les autres rapports, car si une modification de la logique est nécessaire, je mets à jour une vue et tous les rapports sont mis à jour. La plupart des tables avec lesquelles je travaille contiennent des millions et des millions d'enregistrements.
Cependant, ce n'est peut-être pas une bonne pratique. Cela vous dérange-t-il de partager vos pensées à ce sujet?
Les vues font-elles des agrégations? Êtes-vous rejoindre la même table de base à lui-même? Regardez le plan d'exécution et voyez si vous obtenez des plans sous-optimaux. –
Pourriez-vous fournir un exemple de "vue imbriquée"? Je ne connais que la terminologie: vue en ligne (table dérivée AKA), vues non matérialisées et matérialisées (vues indexées AKA dans SQL Server). –
@OMG - Je l'ai pris pour signifier des vues qui référencent d'autres vues qui référencent d'autres vues ... –