Dlaczego indeksujesz swoje poglądy? Wspomniałeś o „marnowaniu miejsca” w swoim rozwiązaniu 2, ale czy wiesz, że podczas indeksowania widoku utrwalasz go w DB?
Innymi słowy, tworzysz kopię danych, które widok zwróciłby w bazie danych i za każdym razem, gdy dane są aktualizowane w tabelach źródłowych, jakiś wewnętrzny mechanizm SQL Server musi zaktualizować je na tej nowej strukturze danych utworzonej, ponieważ teraz serwer SQL czyta z widoku, a nie z tabel.
Jeśli używasz Profilera + DTA lub nawet DMVS możesz wymyślić odpowiednie indeksy do utworzenia na swoich tabelach, z których każdy widok skorzystałby