¿A qué se debe este mensaje de error?

09/02/2004 - 16:23 por Eje | Informe spam
Algunas veces en un procedimiento almacenado recibo este mensaje de error:

Servidor: mensaje 845, nivel 17, estado 1, línea 1
Se excedió el tiempo de espera del tipo de pestillo del búfer 2 para la
página (1:1610435), Id. de base de datos 5.

El procedimiento aún así termina sin errores, puesto que al final de él
tengo un mensaje de información y este aparece tras el mensaje de error, con
toda normalidad.
El procedimiento llena un cursor con unos datos y por cada fila del cursor
realiza una serie de cálculos haciendo consultas en varias tablas y grabando
el resultado de cada cálculo en una tabla temporal que después vuelca en una
tabla real de la BD. Dado que tengo mensajes de error antes de llenar el
cursor y antes de terminar, y que el mensaje de error sale entre ambos,
deduzco que el mensaje debe dar en el proceso de cada línea del cursor, al
grabar en la tabla temporal o al grabar la tabla temporal en la tabla real.
Ya digo que el error no sale siempre, además es un procedimiento que tarda
aprox. 8 horas y el error aparece cuando termina, con lo cual no puedo hacer
pruebas rápidas para ver por qué da y arreglaro.
A ver si alguien puede darme alguna pista de por qué ocurre esto.

Un saludo

Preguntas similare

Leer las respuestas

#11 Eje
16/02/2004 - 11:08 | Informe spam
Bueno, finalmente parece que ya he conseguido resolverlo. El tiempo se ha
reducido a ¡¡15 minutos!! y, aunque todavía estoy revisando que los cálculos
sean correctos, parece que todo ha ido perfectamente.
Lo único "raro" es que en la ejecución me aparece en 4 ocasiones el
siguiente mensaje:

Advertencia: valor NULL eliminado por el agregado u otra operación SET.

Pero he estado revisando el código y no creo que sea ningún error grave, más
allá del título de advertencia que aparece en el propio mensaje.
Os explico por encima cómo he acabado arreglándolo:
Finalmente he creado 6 tablas temporales, una para la extracción de datos de
cada tabla (5) y una más para reunir todos los datos con su estructura
definitiva.
Los pasos que he seguido han sido; primero extraer por separado los datos de
las 2 tablas principales a sus respectivas tablas temporales. Después unir
esas dos tablas en la tabla temporal final para saber así los registros que
entran en el cálculo. A continuación, por cada una de las otras 3 tablas, he
extraído los datos de esos registros a cada una de sus tablas temporales. Y,
finalmente, he actualizado los datos de la tabla temporal final con los
valores de esas 3 tablas temporales para, desde ahí, realizar la inserción
en la tabla real final.
Bueno, no sé si me he explicado bien, si alguno no lo ha entendido y está
interesado en ello, que lo diga e intentaré explicarlo más detalladamente.
Por lo demás sólo me queda ya agradeceros toda la ayuda prestada, ya que sin
vuestras ideas y colaboración no habría conseguido esta mejora. Muchas
gracias a todos.

Un saludo
Respuesta Responder a este mensaje
#12 Adrian D. Garcia
16/02/2004 - 20:47 | Informe spam
Hola,
No sabes cuanto me alegro por ello.
No he podido participar en estos ultimos dias ya que he estado en un
casamiento de aquellos (esos que tienes que ir varios dias antes y te quedas
varios dias depues comiendo y bebiendo sin parar) asi que aqui estoy
tratando de recuperarme un poco y viendo de que se trata SQL Server... es un
motor de bases de datos, no?.

Anecdotas a parte creo que este caso quedara para la bitacora de varios ya
que indica como pasar un proceso batch de varias horas a pocos minutos. Y
eso que muchos no me creian cuando dije 20 minutos, je! Podia haber apostado
alguna cerveza... sera para la proxima entonces!.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Eje" wrote in message
news:c0q4oi$1aej7p$
Bueno, finalmente parece que ya he conseguido resolverlo. El tiempo se ha
reducido a ¡¡15 minutos!! y, aunque todavía estoy revisando que los


cálculos
sean correctos, parece que todo ha ido perfectamente.
Lo único "raro" es que en la ejecución me aparece en 4 ocasiones el
siguiente mensaje:

Advertencia: valor NULL eliminado por el agregado u otra operación SET.

Pero he estado revisando el código y no creo que sea ningún error grave,


más
allá del título de advertencia que aparece en el propio mensaje.
Os explico por encima cómo he acabado arreglándolo:
Finalmente he creado 6 tablas temporales, una para la extracción de datos


de
cada tabla (5) y una más para reunir todos los datos con su estructura
definitiva.
Los pasos que he seguido han sido; primero extraer por separado los datos


de
las 2 tablas principales a sus respectivas tablas temporales. Después unir
esas dos tablas en la tabla temporal final para saber así los registros


que
entran en el cálculo. A continuación, por cada una de las otras 3 tablas,


he
extraído los datos de esos registros a cada una de sus tablas temporales.


Y,
finalmente, he actualizado los datos de la tabla temporal final con los
valores de esas 3 tablas temporales para, desde ahí, realizar la inserción
en la tabla real final.
Bueno, no sé si me he explicado bien, si alguno no lo ha entendido y está
interesado en ello, que lo diga e intentaré explicarlo más detalladamente.
Por lo demás sólo me queda ya agradeceros toda la ayuda prestada, ya que


sin
vuestras ideas y colaboración no habría conseguido esta mejora. Muchas
gracias a todos.

Un saludo


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