Une vue n'est rien de plus qu'une requête avec un nom. Il existe des optimisations possibles liées aux performances, que certains SGBD réalisent mieux que d'autres (pgSQL semble être du meilleur côté), comme la réutilisation du plan de requête, le contrôle d'accès en cache, etc.
Cependant, à la fin de la journée, presque toujours, vous pouvez vous attendre à ce qu'une vue se comporte comme si elle émettait directement le SQL. À la différence que vous pouvez accorder l'accès à cette requête sans accorder l'accès aux tables sous-jacentes.
Il y a des optimisations que vous pourriez faire qui changent le comportement (les rendre à moitié semblables à des tables) et qui pourraient ou non exister dans pgSQL comme les vues matérialisées (désolé aucune idée de pgSQL), mais ce n'est que du pinaillage.