Widok to nic innego jak zapytanie z nazwą. Istnieją możliwe optymalizacje związane z wydajnością, które niektóre DBMS realizują lepiej niż inne (pgSQL wydaje się być po lepszej stronie), takie jak ponowne wykorzystanie planu zapytań, kontrola dostępu do pamięci podręcznej itp.
Jednak pod koniec dnia prawie zawsze można oczekiwać, że widok będzie zachowywał się jak bezpośrednie wydawanie SQL. Z tą różnicą, że możesz przyznać dostęp do tego zapytania bez przyznawania dostępu do tabel bazowych.
Istnieją optymalizacje, które możesz zrobić, aby zmienić zachowanie (uczynić je w połowie podobnymi do tabeli) i które mogą, ale nie muszą istnieć w zmaterializowanych widokach pgSQL (przepraszam, nie mam pojęcia o pgSQL), ale to tylko szukanie dziury w całym.