Sp en Cache

26/10/2006 - 16:16 por Eduardo De Luca | Informe spam
Hola como están . Tengo un sp que la primera ves que se ejecuta tarda
alrededor de 10 segundos , luego en corridas sucesivas , no tarda mas de 1
segundo. Lo que yo necesito hacer es mantenerlo explícitamente siempre en
cache este SP, porque cuando no se usa por un tiempo la aplicación, el
rendimiento vuelve a decaer (en 10 seg) y necesito tener el set de datos con
alta disponibilidad (rendimiento de 1 seg).



Me podrian indicar como hacerlo , si es que es posible.



Muchas Gracias
 

Leer las respuestas

#1 Alejandro Mesa
26/10/2006 - 17:56 | Informe spam
Eduardo,

Eso depende del uso que se le de al sp, del costo de generar el plan
compilado, de cuanta memoria se tiene y cuanta necesita SQL Server en el
buffer de data. SQL Server usa un proceso llamado "lazywriter" que cada
cierto tiempo recorre el cache de procedimientos y decrementa el campo [edad]
de cada plan por 1. Si el plan es referenciado nuevamente, entonces este
campo es incrementado en una cantidad igual al costo de generar su plan
compilado. Como te puedes inmaginar, si un plan no es referenciado desde
ninguna conexion o si su [edad] alcanza el valor cero o si SQL Server
necesita tomar memoria desde el cache de procedimientos para darcela al
buffer de data, entonces este plan es sacado.

No existe una manera explicita de decirle a SQL Server que deje un plan en
memoria aunque este no sea usado.

Que es lo que hace este sp, crees que pudieras mejorar el rendimineto de
la(s) sentencia(s) que este usa?


AMB


"Eduardo De Luca" wrote:

Hola como están . Tengo un sp que la primera ves que se ejecuta tarda
alrededor de 10 segundos , luego en corridas sucesivas , no tarda mas de 1
segundo. Lo que yo necesito hacer es mantenerlo explícitamente siempre en
cache este SP, porque cuando no se usa por un tiempo la aplicación, el
rendimiento vuelve a decaer (en 10 seg) y necesito tener el set de datos con
alta disponibilidad (rendimiento de 1 seg).



Me podrian indicar como hacerlo , si es que es posible.



Muchas Gracias



Preguntas similares