Vistas vs Store Procedures

01/03/2005 - 23:17 por SergioT | Informe spam
Hola

Tengo un par de dudas acerca de Desempeño y ventajas haber que opinan

Pregunta 1
Las Vistas no son "tablas" persistentes cierto? solo se crean en memoria
cuando se llama a la vista cierto?
Un Store procedure es una consulta almacenada que se crea cuando se la llama
cierto??

Entonces cual es su diferencia en cuanto a desempeño ?

Pregunta 2
Me conviene mas hacer una consulta sobre una vista que representa ya datos
resumidos? o hacer un Store procedure que haga todo el trabajo de una sola
vez????

Pregunta 3
Que politicas tiene Sql para optimizar las consultas a la BD???? me refiero
a consultas tipo Padre-hijo ??? Hay alguna importancia en el orden en el
cual se colocan las tablas Padre, hijo dentro del FROM???

Pregunta 4
No se por que no me caen bien los INNER , estoy mas acostumbrado con FROM,
la pregunta es: Es mejor utilizar los INNER que la clausula FROM???? o es
indistinto en cuanto a desempeño????

Bueno estas son lagunas dudas que tengo y q seguro uds me pueden ayudar

GRACIAS de antemano
Sergio
 

Leer las respuestas

#1 MAXI
01/03/2005 - 23:56 | Informe spam
Hola vayamos por partes dijo Jack ;-)

Las vistas no son mas ni menos que el guardado de la query, lo cual cuando
llamas a una vista lo que se hace es ejecutar dicha query.
Tambien dentro de las vistas tienes las vistas indexadas donde es como una
tabla casi :-)

El SP es una consulta almacenada y compilada, a la diferencia de la vista
que cada vez que se ejecuta consulta el plan de ejecucion el sp lo guarda en
cache.
La diferencia en desempeño depende, por logica un sp al estar en ram y
precompilado si ejecutas varias veces el mismo sp seria muy optimo, pero las
vistas cada vez que se ejecutan deben calcular el plan lo cual las hace mas
lentas.

Las vistas las podes usar desde dentro de los sp, la ventaja de un sp es que
ademas de la performance tiene un nivel de abstraccion mayor a la de la
vista y ademas permite todo tipo de intrucciones.

La pregunta 3, la politica de sqlserver dependera de como armes tus querys y
de que indices dispongas, si armas mal las querys o no tienes los mejores
indices, entonces el resultado no sera muy eficiente.

Porque usar los INNER, pues nadie te obliga pero es la forma natural que usa
t-sql, ademas Ms recomienda su uso en lugar de FROM donde cierto tipo de
combinaciones pueden tener resultados no esperados, por ej *=* o *= o =*

Mas informacion te invito a que leas tus libros on line :-)



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"SergioT" escribió en el mensaje
news:%
Hola

Tengo un par de dudas acerca de Desempeño y ventajas haber que opinan

Pregunta 1
Las Vistas no son "tablas" persistentes cierto? solo se crean en memoria
cuando se llama a la vista cierto?
Un Store procedure es una consulta almacenada que se crea cuando se la
llama cierto??

Entonces cual es su diferencia en cuanto a desempeño ?

Pregunta 2
Me conviene mas hacer una consulta sobre una vista que representa ya datos
resumidos? o hacer un Store procedure que haga todo el trabajo de una sola
vez????

Pregunta 3
Que politicas tiene Sql para optimizar las consultas a la BD???? me
refiero a consultas tipo Padre-hijo ??? Hay alguna importancia en el orden
en el cual se colocan las tablas Padre, hijo dentro del FROM???

Pregunta 4
No se por que no me caen bien los INNER , estoy mas acostumbrado con FROM,
la pregunta es: Es mejor utilizar los INNER que la clausula FROM???? o es
indistinto en cuanto a desempeño????

Bueno estas son lagunas dudas que tengo y q seguro uds me pueden ayudar

GRACIAS de antemano
Sergio

Preguntas similares