Pourquoi indexez-vous vos vues ? Vous avez mentionné "perte d'espace" dans votre solution 2, mais saviez-vous que lorsque vous indexez votre vue, vous la persistez sur la base de données ?
En d'autres termes, vous faites une copie des données que la vue renverrait sur la base de données et chaque fois que les données sont mises à jour sur les tables source, un mécanisme interne de SQL Server doit les mettre à jour sur cette nouvelle structure de données créée car désormais SQL Server lit à partir de la vue, et non plus des tables.
Si vous utilisez Profiler + DTA ou même DMVS vous pouvez trouver les index corrects à créer sur vos tables dont n'importe quelle vue bénéficierait