Bueno, en al menos SQL Server las vistas lo que hacen es lo que le dice NSlaver, abstraen los detalles internos de como se obtiene la informacion... falcilmente una vista que te trae informacion de 10 o 15 tablas la obtienes con un simpre select * from VW_Datos (por ejemplo) en vez de estar haciendo todos los join necesarios.... ademas, imaginate que necesites los datos que obtienes con esa vista, para hacer una mas compleja.... ¿cual seria mas facil de hacer y se podria reutilizar?
- Una consulta con join de 20 tablas
- Una vista y 5 tablas (yo optaria por esta por simple comodidad).
En este caso suponiendo que la vista es una consulta que se utilice en muchas situaciones... ahi mas o menos es donde entraria basicamente el uso de la vista, tener consultas recurrentes de datos con un tamaño considerable, y en vez de escribir toda la consulta siempre, solo hacer una llamada a la vista.
En el caso de los procedimientos almacenados es otra cosa.... estos si ayudan al performance, dado que, como es una consulta basada en un query que no cambia con cada ejecucion la primera vez que se corre es cuanto mas cuesta al moto de base de datos, ya que tiene que crear un plan de ejecucion. Que tiene de bueno esto?.. simple!!... ese plan de ejecucion se almacena y el motor todas las veces que tenga que realizar esa consulta no tiene que hacer un plan de ejecucion nuevo para obtener los datos (cosa que si hacen las consultas directas y las vistas basadas en consultas directas), por lo que el tiempo de respuesta se puede ver muy reducidos si se hace buen uso de los procedimientos almacenados.
PD: Si lo que quiere es obtener un mejor tiempo en las consultas le recomiendo que analices las consultas tambien con el Query plan de tu motor de base de datos, ya que muchas veces te dice donde hay detalles que pueden hacer que tu consulta sea mas eficiente y que puede hacer que sea mas lenta.
SuerteX