Son las vistas mas rapidas o que debo hacer

11/10/2007 - 17:27 por Imac_man | Informe spam
Amigos,

mi consulta es la siguiente, me gustaria saber que es mas rapido para poder
ejecutar una consulta, usar un query desde mi programa , usar el query
dentro de un procedimiento almacenado e invocar los resultados desde mi
programa o usar una vistapor supuesto el query en mencion hace una
invocacion sobre varias tablas relacionadas con una gran cantidad de datos,
en resumen el tipico query de proporciones mounstruosas. les agradeceria
todos los consejos posibles para ser mas rapido dicho query

mil gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
11/10/2007 - 17:47 | Informe spam
Como regla general, una consulta es eficiente si tiene los índices apropiados
y se ejecuta desde un procedimiento almacenado.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Imac_man" wrote:

Amigos,

mi consulta es la siguiente, me gustaria saber que es mas rapido para poder
ejecutar una consulta, usar un query desde mi programa , usar el query
dentro de un procedimiento almacenado e invocar los resultados desde mi
programa o usar una vistapor supuesto el query en mencion hace una
invocacion sobre varias tablas relacionadas con una gran cantidad de datos,
en resumen el tipico query de proporciones mounstruosas. les agradeceria
todos los consejos posibles para ser mas rapido dicho query

mil gracias de antemano.



Respuesta Responder a este mensaje
#2 Imac_man
11/10/2007 - 18:19 | Informe spam
Gustavo,

Que hay respecto a las vistasson estas en algun grado mas eficientes que
un query normal?, por otra parte me gustaria saber si hay algo de malo en
incluir unos cuantos subquerys dentro de un query, si no es bueno hacer esto
como se deben hacer las consultas en las que una columna es el total de
filas de otra tabla o la sumatoria de la columna valores de alguna tabla x.

gracias de antemano


"Gux (MVP)" escribió en el mensaje
news:
Como regla general, una consulta es eficiente si tiene los índices
apropiados
y se ejecuta desde un procedimiento almacenado.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Imac_man" wrote:

Amigos,

mi consulta es la siguiente, me gustaria saber que es mas rapido para
poder
ejecutar una consulta, usar un query desde mi programa , usar el query
dentro de un procedimiento almacenado e invocar los resultados desde mi
programa o usar una vistapor supuesto el query en mencion hace una
invocacion sobre varias tablas relacionadas con una gran cantidad de
datos,
en resumen el tipico query de proporciones mounstruosas. les agradeceria
todos los consejos posibles para ser mas rapido dicho query

mil gracias de antemano.






Respuesta Responder a este mensaje
#3 Gux (MVP)
11/10/2007 - 18:42 | Informe spam
Las vistas tienen peor rendimiento que una query normal, pero pueden
optimizarse usando indices (indexed views). Además pueden beneficiarse cuando
el sistema las almacena en el cache. Pero como idea general, una vista tiene
menor rendimiento que una consulta.

Por otro lado, una consulta puede ser muy compleja pero tener buen
rendimiento si se han creado los indices adecuados para ella. Para analizar
el rendimiento de una consulta en particular, se debe estudiar el plan de
ejecución de la consulta.

También le recomiendo este buen artículo:

Performance Tuning for Views
http://www.sql-server-performance.c...al_p1.aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Imac_man" wrote:

Gustavo,

Que hay respecto a las vistasson estas en algun grado mas eficientes que
un query normal?, por otra parte me gustaria saber si hay algo de malo en
incluir unos cuantos subquerys dentro de un query, si no es bueno hacer esto
como se deben hacer las consultas en las que una columna es el total de
filas de otra tabla o la sumatoria de la columna valores de alguna tabla x.

gracias de antemano


"Gux (MVP)" escribió en el mensaje
news:
> Como regla general, una consulta es eficiente si tiene los índices
> apropiados
> y se ejecuta desde un procedimiento almacenado.
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Imac_man" wrote:
>
>> Amigos,
>>
>> mi consulta es la siguiente, me gustaria saber que es mas rapido para
>> poder
>> ejecutar una consulta, usar un query desde mi programa , usar el query
>> dentro de un procedimiento almacenado e invocar los resultados desde mi
>> programa o usar una vistapor supuesto el query en mencion hace una
>> invocacion sobre varias tablas relacionadas con una gran cantidad de
>> datos,
>> en resumen el tipico query de proporciones mounstruosas. les agradeceria
>> todos los consejos posibles para ser mas rapido dicho query
>>
>> mil gracias de antemano.
>>
>>
>>
>



Respuesta Responder a este mensaje
#4 Alejandro Mesa
12/10/2007 - 01:56 | Informe spam
Imac_man,

Una vista es un query normal y SQL Server las trata tal y cual. Cuando una
sentencia referencia una vista, lo que se usa es la sentencia "select" que la
define, al menos que sea una vista indexada. No estoy diciendo que las vistas
sean mejor que usar la sentencia directamente, pues cuando estas estan
anidadas en mas de ciertos niveles, entonces el optimizador debe trabajar mas
duro para encontrar un plan de ejecucion adecuado. Ademas, cuando se
referencia una vista, se debe consultar las tablas de sistema para traer su
definicion y validar la metadata, lo cual toma su poquito de tiempo.

En determinados momentos, usar una vista hace el codigo mas leible, pro
ejemplo cuando se refrencia una tabla derivada multiples veces en la misma
sentencia "select".

La recomendacion final es que se hagan pruebas de rendimiento, que a la
final son las que te diran si es recomendable su uso o no.

AMB

"Imac_man" wrote:

Amigos,

mi consulta es la siguiente, me gustaria saber que es mas rapido para poder
ejecutar una consulta, usar un query desde mi programa , usar el query
dentro de un procedimiento almacenado e invocar los resultados desde mi
programa o usar una vistapor supuesto el query en mencion hace una
invocacion sobre varias tablas relacionadas con una gran cantidad de datos,
en resumen el tipico query de proporciones mounstruosas. les agradeceria
todos los consejos posibles para ser mas rapido dicho query

mil gracias de antemano.



Respuesta Responder a este mensaje
#5 Imac_man
12/10/2007 - 17:29 | Informe spam
muchas gracias por tus aclaraciones amigo

"Gux (MVP)" escribió en el mensaje
news:
Las vistas tienen peor rendimiento que una query normal, pero pueden
optimizarse usando indices (indexed views). Además pueden beneficiarse
cuando
el sistema las almacena en el cache. Pero como idea general, una vista
tiene
menor rendimiento que una consulta.

Por otro lado, una consulta puede ser muy compleja pero tener buen
rendimiento si se han creado los indices adecuados para ella. Para
analizar
el rendimiento de una consulta en particular, se debe estudiar el plan de
ejecución de la consulta.

También le recomiendo este buen artículo:

Performance Tuning for Views
http://www.sql-server-performance.c...al_p1.aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Imac_man" wrote:

Gustavo,

Que hay respecto a las vistasson estas en algun grado mas eficientes
que
un query normal?, por otra parte me gustaria saber si hay algo de malo en
incluir unos cuantos subquerys dentro de un query, si no es bueno hacer
esto
como se deben hacer las consultas en las que una columna es el total de
filas de otra tabla o la sumatoria de la columna valores de alguna tabla
x.

gracias de antemano


"Gux (MVP)" escribió en el mensaje
news:
> Como regla general, una consulta es eficiente si tiene los índices
> apropiados
> y se ejecuta desde un procedimiento almacenado.
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna
> clase.
>
>
>
> "Imac_man" wrote:
>
>> Amigos,
>>
>> mi consulta es la siguiente, me gustaria saber que es mas rapido para
>> poder
>> ejecutar una consulta, usar un query desde mi programa , usar el query
>> dentro de un procedimiento almacenado e invocar los resultados desde
>> mi
>> programa o usar una vistapor supuesto el query en mencion hace una
>> invocacion sobre varias tablas relacionadas con una gran cantidad de
>> datos,
>> en resumen el tipico query de proporciones mounstruosas. les
>> agradeceria
>> todos los consejos posibles para ser mas rapido dicho query
>>
>> mil gracias de antemano.
>>
>>
>>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida