Antes que otra cosa, agradezco la confianza de M en mis comentarios.
Con respecto a las vistas. Poco las utilizo y esto es, en gran medida, por que las consultas normalmente no son muy complejas y las que lo son prefiero hacerlas en sp que generar una vista.
Las ventajas de las vistas son muchas, en relación a seguridad y filtrado de información visible, sin embargo, no ofrecen mayor desempeño a las consultas. No, por lo menos, en relación a una buena estrategia de índices en las tablas.
Supongo que tienes indexados los campos que utilizas en los joins para tu consulta y aunque no la conozco, lo que puede estar sucediendo con ella son muchas cosas, que van desde hacer consultas sobre subconsultas, tener algunos filtros "where campo in (select)" o estar haciendo búsquedas a substrings o productos de funciones (datepart o isnull, por ejemplo).
Todas estas cosas hacen que el desempeño sea menor. Desafortunadamente no cuento con tu consulta y no sé como podría optimizarse. Lo que puedes hacer es buscar todos estos detallitos y tratar de darles solución de otra forma. En el caso particular de las funciones o substrings y cosas parecidas, conviene, ahí si, poner estos en vistas y luego hacer las consultas sobre ellas, toda vez que no estarán indexados en ningún momento. De otra forma, pareciera trabajo extra hacer vistas, ya que aunque 'heredan' los índices desde las tablas, su uso es menos óptimo. En este caso, es preferible indexar los campos más relevantes del query.
Espero que te sirva.
Saludos.