Bloqueos en TEMPDB..SYSOBJECTS

14/11/2005 - 11:50 por Antonio Zorita | Informe spam
¿Qué hay?
Desde hace tiempo estamos teniendo problemas con bloqueos en la bd TEMPDB.
En concreto, nos hemos fijado que si hacemos un SELECT * FROM
TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
tiempo en devolver los datos. Esto coincide normalmente con problemas de
acceso en las aplicaciones que terminan por dar tiempo de espera finalizado.

Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
devolver los valores de los campos instrig, updtrig, seltrig y deltrig, la
cosa cambia. Parece que dichos campos son los que están bloqueados.

¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
evitarlo?

Gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
14/11/2005 - 12:10 | Informe spam
¿Se usan muchas tablas temporales en vuestro sistema? Ten en cuenta que
al igual que las tablas normales, las temporales también generan bloqueos en
la base de datos en donde se crean, en este caso TEMPDB.

Te recomendaría estudiar la situación con el monitor del sistema y el
profiler para ver por qué se producen esos bloqueos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Zorita" escribió en el
mensaje news:
¿Qué hay?
Desde hace tiempo estamos teniendo problemas con bloqueos en la bd TEMPDB.
En concreto, nos hemos fijado que si hacemos un SELECT * FROM
TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
tiempo en devolver los datos. Esto coincide normalmente con problemas de
acceso en las aplicaciones que terminan por dar tiempo de espera


finalizado.

Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
devolver los valores de los campos instrig, updtrig, seltrig y deltrig, la
cosa cambia. Parece que dichos campos son los que están bloqueados.

¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
evitarlo?

Gracias.

Respuesta Responder a este mensaje
#2 Antonio Zorita
14/11/2005 - 12:30 | Informe spam
Actualmente el volumen de tablas que se usa no es excesivo. De hecho, queda
bastante espacio libre dentro de la base de datos.

Gracias.


"Carlos Sacristán" escribió:

¿Se usan muchas tablas temporales en vuestro sistema? Ten en cuenta que
al igual que las tablas normales, las temporales también generan bloqueos en
la base de datos en donde se crean, en este caso TEMPDB.

Te recomendaría estudiar la situación con el monitor del sistema y el
profiler para ver por qué se producen esos bloqueos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Zorita" escribió en el
mensaje news:
> ¿Qué hay?
> Desde hace tiempo estamos teniendo problemas con bloqueos en la bd TEMPDB.
> En concreto, nos hemos fijado que si hacemos un SELECT * FROM
> TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
> tiempo en devolver los datos. Esto coincide normalmente con problemas de
> acceso en las aplicaciones que terminan por dar tiempo de espera
finalizado.
>
> Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
> WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
> devolver los valores de los campos instrig, updtrig, seltrig y deltrig, la
> cosa cambia. Parece que dichos campos son los que están bloqueados.
>
> ¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
> continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
> evitarlo?
>
> Gracias.
>



Respuesta Responder a este mensaje
#3 Maxi
14/11/2005 - 12:52 | Informe spam
Hola, me podrias decir cual es el tamaño actual de la Tempdb?


Salu2
Maxi [MVP SQL SERVER]


"Antonio Zorita" escribió en el
mensaje news:
Actualmente el volumen de tablas que se usa no es excesivo. De hecho,
queda
bastante espacio libre dentro de la base de datos.

Gracias.


"Carlos Sacristán" escribió:

¿Se usan muchas tablas temporales en vuestro sistema? Ten en cuenta
que
al igual que las tablas normales, las temporales también generan bloqueos
en
la base de datos en donde se crean, en este caso TEMPDB.

Te recomendaría estudiar la situación con el monitor del sistema y el
profiler para ver por qué se producen esos bloqueos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Zorita" escribió en el
mensaje news:
> ¿Qué hay?
> Desde hace tiempo estamos teniendo problemas con bloqueos en la bd
> TEMPDB.
> En concreto, nos hemos fijado que si hacemos un SELECT * FROM
> TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
> tiempo en devolver los datos. Esto coincide normalmente con problemas
> de
> acceso en las aplicaciones que terminan por dar tiempo de espera
finalizado.
>
> Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
> WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
> devolver los valores de los campos instrig, updtrig, seltrig y deltrig,
> la
> cosa cambia. Parece que dichos campos son los que están bloqueados.
>
> ¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
> continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
> evitarlo?
>
> Gracias.
>



Respuesta Responder a este mensaje
#4 Miguel Egea
14/11/2005 - 13:32 | Informe spam
Antonio no es un problema de espacio libre, sino de concurrencia, depende tu
política de joins, order by, indices, este tipo de cosas crean y destruyen
tablas en TempDB y si hay bloqueos en esa tabla es porque se están creando y
destruyendo muchos objetos. Busca tus joins y order bys, repasa su plan de
ejecución y seguramente disminuya el uso de tempdb.

Saludos

Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Antonio Zorita" wrote in message
news:
Actualmente el volumen de tablas que se usa no es excesivo. De hecho,
queda
bastante espacio libre dentro de la base de datos.

Gracias.


"Carlos Sacristán" escribió:

¿Se usan muchas tablas temporales en vuestro sistema? Ten en cuenta
que
al igual que las tablas normales, las temporales también generan bloqueos
en
la base de datos en donde se crean, en este caso TEMPDB.

Te recomendaría estudiar la situación con el monitor del sistema y el
profiler para ver por qué se producen esos bloqueos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Zorita" escribió en el
mensaje news:
> ¿Qué hay?
> Desde hace tiempo estamos teniendo problemas con bloqueos en la bd
> TEMPDB.
> En concreto, nos hemos fijado que si hacemos un SELECT * FROM
> TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
> tiempo en devolver los datos. Esto coincide normalmente con problemas
> de
> acceso en las aplicaciones que terminan por dar tiempo de espera
finalizado.
>
> Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
> WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
> devolver los valores de los campos instrig, updtrig, seltrig y deltrig,
> la
> cosa cambia. Parece que dichos campos son los que están bloqueados.
>
> ¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
> continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
> evitarlo?
>
> Gracias.
>



Respuesta Responder a este mensaje
#5 Antonio Zorita
16/11/2005 - 09:02 | Informe spam
Muchas gracias a todos.

Seguramente tengas razón, Miguel. Tenemos muchos procesos que creo que
sobreutilizan las tablas temporales y los joins, y creo que vamos a tener que
revisar todos los que son susceptibles de darnos problemas.

Maxi. No es problema del espacio ni del tamaño. Eso ya lo hemos comprobado.
De todas formas, muchísimas gracias.


"Miguel Egea" escribió:

Antonio no es un problema de espacio libre, sino de concurrencia, depende tu
política de joins, order by, indices, este tipo de cosas crean y destruyen
tablas en TempDB y si hay bloqueos en esa tabla es porque se están creando y
destruyendo muchos objetos. Busca tus joins y order bys, repasa su plan de
ejecución y seguramente disminuya el uso de tempdb.

Saludos

Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Antonio Zorita" wrote in message
news:
> Actualmente el volumen de tablas que se usa no es excesivo. De hecho,
> queda
> bastante espacio libre dentro de la base de datos.
>
> Gracias.
>
>
> "Carlos Sacristán" escribió:
>
>> ¿Se usan muchas tablas temporales en vuestro sistema? Ten en cuenta
>> que
>> al igual que las tablas normales, las temporales también generan bloqueos
>> en
>> la base de datos en donde se crean, en este caso TEMPDB.
>>
>> Te recomendaría estudiar la situación con el monitor del sistema y el
>> profiler para ver por qué se producen esos bloqueos...
>>
>>
>> Un saludo
>>
>> -
>> "Sólo sé que no sé nada. " (Sócrates)
>>
>> "Antonio Zorita" escribió en el
>> mensaje news:
>> > ¿Qué hay?
>> > Desde hace tiempo estamos teniendo problemas con bloqueos en la bd
>> > TEMPDB.
>> > En concreto, nos hemos fijado que si hacemos un SELECT * FROM
>> > TEMPDB..SYSOBJECTS WITH(NOLOCK), en bastantes ocasiones tarda muchísimo
>> > tiempo en devolver los datos. Esto coincide normalmente con problemas
>> > de
>> > acceso en las aplicaciones que terminan por dar tiempo de espera
>> finalizado.
>> >
>> > Si esta select la sustituimos por SELECT NAME FROM TEMPDB..SYSOBJECTS
>> > WITH(NOLOCK), devuelve los datos rápidamente. Pero en cuento tiene que
>> > devolver los valores de los campos instrig, updtrig, seltrig y deltrig,
>> > la
>> > cosa cambia. Parece que dichos campos son los que están bloqueados.
>> >
>> > ¿Por qué puede ocurrir esto? ¿Puede haber algún proceso que esté
>> > continuamente bloqueando dichos campos, o es el propio sistema? ¿Cómo
>> > evitarlo?
>> >
>> > Gracias.
>> >
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida