CACHE DE PLANES DE EJECUCION

02/05/2007 - 12:04 por Ferran | Informe spam
Hola a todos/as,

He desarrollado un procedimiento almacenado que realiza diferentes
consultas en distintas tablas, y que almacena todos los resultados en una
tabla temporal, que al final se acaba mostrando al usuario. Las búsquedas se
realizan aprovechando la funcionalidad que proporciona el full-text search.

La primera vez que ejecuto la consulta, ésta tarda bastante (más de 30
segundos), aunque las siguientes veces ya va mucho más rápido (menos de 3
segundos), debido a que el plan de ejecución ya está almacenado en la caché.

Mi pregunta es: ¿Sabéis como puedo mantener un plan de ejecución de un
procedimiento almacenado en la cache? Cuando hace más de 10 minutos que no se
ejecuta la consulta, su plan de ejecución se borra de la cache, y vuelvo a
tener el mismo problema.

Muchas gracias por anticipado.

Ferran

Preguntas similare

Leer las respuestas

#1 Maxi
02/05/2007 - 14:21 | Informe spam
Hola, yo no buscaria la solucion de la performance por ese lado, porque no
revisas porque tarda 30 segundos? has visto el plan de ejecucion? has
tratado de optimizar la query?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Ferran" escribió en el mensaje
news:
Hola a todos/as,

He desarrollado un procedimiento almacenado que realiza diferentes
consultas en distintas tablas, y que almacena todos los resultados en una
tabla temporal, que al final se acaba mostrando al usuario. Las búsquedas
se
realizan aprovechando la funcionalidad que proporciona el full-text
search.

La primera vez que ejecuto la consulta, ésta tarda bastante (más de 30
segundos), aunque las siguientes veces ya va mucho más rápido (menos de 3
segundos), debido a que el plan de ejecución ya está almacenado en la
caché.

Mi pregunta es: ¿Sabéis como puedo mantener un plan de ejecución de un
procedimiento almacenado en la cache? Cuando hace más de 10 minutos que no
se
ejecuta la consulta, su plan de ejecución se borra de la cache, y vuelvo a
tener el mismo problema.

Muchas gracias por anticipado.

Ferran
Respuesta Responder a este mensaje
#2 Ferran
03/05/2007 - 09:30 | Informe spam
Hola Maxi,

Gracias por tu respuesta, aunque este paso ya lo realizamos anteriormente.
Básicamente se trata de un problema de "cantidad" de registros, y no de
"calidad" de la consulta. Tenemos que buscar palabras en concreto en
distintas tablas que tienen campos textuales (indexados para aprovechar el
full-text search).

He intentado aprovechar las nuevas características del SQL Server 2005 (USE
PLAN), pero aun así no me resuelven el problema.

Gracias por tu respuesta.

Un saludo.

"Maxi" wrote:

Hola, yo no buscaria la solucion de la performance por ese lado, porque no
revisas porque tarda 30 segundos? has visto el plan de ejecucion? has
tratado de optimizar la query?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Ferran" escribió en el mensaje
news:
> Hola a todos/as,
>
> He desarrollado un procedimiento almacenado que realiza diferentes
> consultas en distintas tablas, y que almacena todos los resultados en una
> tabla temporal, que al final se acaba mostrando al usuario. Las búsquedas
> se
> realizan aprovechando la funcionalidad que proporciona el full-text
> search.
>
> La primera vez que ejecuto la consulta, ésta tarda bastante (más de 30
> segundos), aunque las siguientes veces ya va mucho más rápido (menos de 3
> segundos), debido a que el plan de ejecución ya está almacenado en la
> caché.
>
> Mi pregunta es: ¿Sabéis como puedo mantener un plan de ejecución de un
> procedimiento almacenado en la cache? Cuando hace más de 10 minutos que no
> se
> ejecuta la consulta, su plan de ejecución se borra de la cache, y vuelvo a
> tener el mismo problema.
>
> Muchas gracias por anticipado.
>
> Ferran



Respuesta Responder a este mensaje
#3 Alejandro Mesa
03/05/2007 - 15:08 | Informe spam
Ferran,

Al parecer tu problema no esta relacionado con el plan de ejecucion sino con
el cache de data. Eso lo puedes probar usando "set statistics profile on" y
chequear las lecturas logicas (lectura de paginas en memoria) y las lecturas
fisicas (paginas en disco).


AMB

"Ferran" wrote:

Hola Maxi,

Gracias por tu respuesta, aunque este paso ya lo realizamos anteriormente.
Básicamente se trata de un problema de "cantidad" de registros, y no de
"calidad" de la consulta. Tenemos que buscar palabras en concreto en
distintas tablas que tienen campos textuales (indexados para aprovechar el
full-text search).

He intentado aprovechar las nuevas características del SQL Server 2005 (USE
PLAN), pero aun así no me resuelven el problema.

Gracias por tu respuesta.

Un saludo.

"Maxi" wrote:

> Hola, yo no buscaria la solucion de la performance por ese lado, porque no
> revisas porque tarda 30 segundos? has visto el plan de ejecucion? has
> tratado de optimizar la query?
>
>
> Salu2
>
> Microsoft MVP SQL Server
> Culminis Speaker
>
> "Ferran" escribió en el mensaje
> news:
> > Hola a todos/as,
> >
> > He desarrollado un procedimiento almacenado que realiza diferentes
> > consultas en distintas tablas, y que almacena todos los resultados en una
> > tabla temporal, que al final se acaba mostrando al usuario. Las búsquedas
> > se
> > realizan aprovechando la funcionalidad que proporciona el full-text
> > search.
> >
> > La primera vez que ejecuto la consulta, ésta tarda bastante (más de 30
> > segundos), aunque las siguientes veces ya va mucho más rápido (menos de 3
> > segundos), debido a que el plan de ejecución ya está almacenado en la
> > caché.
> >
> > Mi pregunta es: ¿Sabéis como puedo mantener un plan de ejecución de un
> > procedimiento almacenado en la cache? Cuando hace más de 10 minutos que no
> > se
> > ejecuta la consulta, su plan de ejecución se borra de la cache, y vuelvo a
> > tener el mismo problema.
> >
> > Muchas gracias por anticipado.
> >
> > Ferran
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida