¡Hola!
Por lo general es más eficiente un procedimiento almacenado, ya que permite el uso de variables, puede recibir parámetros, y es posible "suspenderlo" (pausarlo) durante el ciclo
For Select para que el servidor y / o el cliente lleven a cabo otro procesamiento durante la generación del cursor. Además de que puede incluir prácticamente todo tipo de código SQL.
La principal desventaja de las vistas es que el servidor ejecuta TODA la consulta y mantiene el completo cursor en memoria antes de devolver el control al lado cliente.
Personalmente, recomiendo el uso de vistas sólo para cursores sencillos que siempre arrojarán un pequeño número de filas o cuya consulta no afecte el desempeño (por consumo de tiempo) de la interfaz de usuario.
Saludos.
Al González.
P.D. Un favor, ¿podrías cortar en varias líneas las sentencias de código más largas que escribiste para mejorar la lectura de tu mensaje? Gracias.