Une vue est-elle plus rapide qu'une simple requête ?

Une vue est-elle plus rapide qu’une simple requête ?

Oui, les vues peuvent avoir un index cluster assigné et, lorsqu’elles en ont un, elles stockent des résultats temporaires qui peuvent accélérer les requêtes résultantes.

La propre documentation de Microsoft indique très clairement que les vues peuvent améliorer les performances.

Premièrement, la plupart des vues créées par les utilisateurs sont des vues simples et n’utilisent pas cette fonctionnalité, et ne sont donc pas différentes d’une requête directe sur les tables de base. Les vues simples sont développées sur place et donc ne contribuent pas directement à l’amélioration des performances - cela est vrai. Cependant, les vues indexées peuvent améliorer considérablement les performances.

Permettez-moi d’aller directement à la documentation :

Après la création d’un index cluster unique sur la vue, le jeu de résultats de la vue est matérialisé immédiatement et persisté dans le stockage physique de la base de données, évitant ainsi la surcharge de l’exécution de cette opération coûteuse au moment de l’exécution.

Deuxièmement, ces vues indexées peuvent fonctionner même lorsqu’elles ne sont pas directement référencées par une autre requête, car l’optimiseur les utilisera à la place d’une référence de table lorsque c’est approprié.

Encore une fois, la documentation :

La vue indexée peut être utilisée dans l’exécution d’une requête de deux manières. La requête peut référencer directement la vue indexée, ou, plus important encore, l’optimiseur de requêtes peut sélectionner la vue s’il détermine que la vue peut se substituer à une partie ou à la totalité de la requête dans le plan de requête le moins coûteux. Dans le second cas, la vue indexée est utilisée à la place des tables sous-jacentes et de leurs index ordinaires. La vue n’a pas besoin d’être référencée dans la requête pour que l’optimiseur de requêtes l’utilise lors de l’exécution de la requête. Cela permet aux applications existantes de bénéficier des vues indexées nouvellement créées sans modifier ces applications.

Cette documentation, ainsi que des graphiques démontrant les améliorations de performance, peut être consultée ici.

Mise à jour 2 : cette réponse a été critiquée sur la base que c’est “l’index” qui fournit l’avantage de performance, pas la “vue”. Cependant, ceci

(Réponse tronquée)