Diferencia rendimiento consulta y procedimiento almacenado

27/10/2009 - 17:20 por Cotzila | Informe spam
Hola a todos, llevo unos dias viendo una consulta que ejecutandola
directamente desde .net (incorporando la select en el codigo fuente)
es tres veces mas rapido que desde un procedimiento.

A alguien le ha pasado algo parecido??? la consulta es muy compleja
el origen es una funciona que devuelve una tabla y esta funcion hace
una consulta sobre varias tablas y consultas almacenadas.

Fuera del procedimiento tarda 9 seg. dentro del procedimiento 54 seg.

Alguna idea?

gracias

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
27/10/2009 - 17:26 | Informe spam
Probablemente te esté ocurriendo un problema llamado "parameter sniffing".
Básicamente consiste en que los valores de los parámetros con los que se
compiló el procedimiento almacenado no son los más adecuados para los
valores que le llegan. Sin embargo, en
http://groups.google.com/group/micr...fe27?pli=1
puedes leer una respuesta mucho más completa y trabajada de Alejandro Mesa
sobre este tema.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"Cotzila" wrote in message
news:
Hola a todos, llevo unos dias viendo una consulta que ejecutandola
directamente desde .net (incorporando la select en el codigo fuente)
es tres veces mas rapido que desde un procedimiento.

A alguien le ha pasado algo parecido??? la consulta es muy compleja
el origen es una funciona que devuelve una tabla y esta funcion hace
una consulta sobre varias tablas y consultas almacenadas.

Fuera del procedimiento tarda 9 seg. dentro del procedimiento 54 seg.

Alguna idea?

gracias
Respuesta Responder a este mensaje
#2 Cotzila
28/10/2009 - 00:14 | Informe spam
On 27 oct, 17:26, "Carlos Sacristan" wrote:
Probablemente te esté ocurriendo un problema llamado "parameter sniffing".
Básicamente consiste en que los valores de los parámetros con los que se
compiló el procedimiento almacenado no son los más adecuados para los
valores que le llegan. Sin embargo, enhttp://groups.google.com/group/mi...sg/44d8...
puedes leer una respuesta mucho más completa y trabajada de Alejandro Mesa
sobre este tema.



Ya entiendo, muchas gracias Carlos, investigo sobre ese tema y si lo
solucion posteo la respuesta, gracias.
"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático

"Cotzila" wrote in message

news:



> Hola a todos, llevo unos dias viendo una consulta que ejecutandola
> directamente desde .net (incorporando la select en el codigo fuente)
> es tres veces mas rapido que desde un procedimiento.

> A alguien le ha pasado algo parecido???  la consulta es muy compleja
> el origen es una funciona que devuelve una tabla y esta funcion hace
> una consulta sobre varias tablas y consultas almacenadas.

> Fuera del procedimiento tarda 9 seg. dentro del procedimiento 54 seg.

> Alguna idea?

> gracias- Ocultar texto de la cita -

- Mostrar texto de la cita -
Respuesta Responder a este mensaje
#3 Cotzila
29/10/2009 - 10:00 | Informe spam
Buenas , justamente era eso, una vez añadida la clausula with
recompile ya tiene unos tiempos de ejecución optimos.

Gracias de nuevo carlos.
On 28 oct, 00:14, Cotzila wrote:
On 27 oct, 17:26, "Carlos Sacristan" wrote:> Probablemente te esté ocurriendo un problema llamado "parameter sniffing".
> Básicamente consiste en que los valores de los parámetros con los que se
> compiló el procedimiento almacenado no son los más adecuados para los
> valores que le llegan. Sin embargo, enhttp://groups.google.com/group/mi...sg/44d8...
> puedes leer una respuesta mucho más completa y trabajada de Alejandro Mesa
> sobre este tema.

Ya entiendo, muchas gracias Carlos, investigo sobre ese tema y si lo
solucion posteo la respuesta, gracias.



> "Caminar sobre el agua y desarrollar software a partir de unas
> especificaciones es fácil, si ambas están congeladas."
> Edward V. Berard, ingeniero informático

> "Cotzila" wrote in message

>news:

> > Hola a todos, llevo unos dias viendo una consulta que ejecutandola
> > directamente desde .net (incorporando la select en el codigo fuente)
> > es tres veces mas rapido que desde un procedimiento.

> > A alguien le ha pasado algo parecido???  la consulta es muy compleja
> > el origen es una funciona que devuelve una tabla y esta funcion hace
> > una consulta sobre varias tablas y consultas almacenadas.

> > Fuera del procedimiento tarda 9 seg. dentro del procedimiento 54 seg.

> > Alguna idea?

> > gracias- Ocultar texto de la cita -

> - Mostrar texto de la cita -- Ocultar texto de la cita -

- Mostrar texto de la cita -
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida