none
Crecimiento excesivo de la base tempdb RRS feed

  • Pregunta

  • Hola
    Espero que me puedan ayudar..

    Es con SQL Server 7.0.

    Tengo problemas con la base de datos tempdb, cuando se reinicia el servidor el espacio inicial en disco es de 1 GB, pero luego de unas horas el espacio aumenta a 40 GB.

    Luego de transcurrido el día cuando se supone que no hay procesos, ni usuarios, el espacio en disco no se libera, queda con los 40 GB, entonces:

    ¿Porque crece tanto y no se libera el espacio automáticamente?

    Otro dato, es que el espacio que señala el administrador corporativo es que la tempdb está vacía o free y esto no coincide con el espacio que utiliza en disco.

    ¿Cómo determino el espacio efectivo y que hacer para que libere automáticamente el espacio?.

    Agradezco desde ya cualquier ayuda.
    jueves, 12 de marzo de 2009 13:12

Respuestas

  • Hola.

    Si tu servidor utiliza mucho tablas temporales es normal que crezca. Reducirse no se va a reducir sola (no le puedes poner el autoshrink), ni es conveniente que se haga mediante un job o similar. Pero lo puedes hacer tú, como con cualquier otra base de datos (shrinkdatabase, por ejemplo), si bien es cierto que lo que te indique el administrador corporativo puede que no refleje la realidad en el caso de tempdb.

    Ten en cuenta además que tempdb se llena de una forma muy similar a los ficheros de log, de forma cíclica. A lo mejor intentas reducirla y no lo consigues porque está ocupándose en ese momento la parte final del fichero, estando vacía la primera parte. En general lo ideal es saber cuál es su tamaño normal y monitorizar desviaciones de ese tamaño. Si son 40Gb, pues 40Gb.

    Con todo y con eso, ese crecimiento denota un uso intensivo de tempdb. Te paso un link con unos pocos consejos que seguro que te vendrán bien.


    Alberto López Grande.
    jueves, 12 de marzo de 2009 13:49
    Moderador

Todas las respuestas

  • Hola.

    Si tu servidor utiliza mucho tablas temporales es normal que crezca. Reducirse no se va a reducir sola (no le puedes poner el autoshrink), ni es conveniente que se haga mediante un job o similar. Pero lo puedes hacer tú, como con cualquier otra base de datos (shrinkdatabase, por ejemplo), si bien es cierto que lo que te indique el administrador corporativo puede que no refleje la realidad en el caso de tempdb.

    Ten en cuenta además que tempdb se llena de una forma muy similar a los ficheros de log, de forma cíclica. A lo mejor intentas reducirla y no lo consigues porque está ocupándose en ese momento la parte final del fichero, estando vacía la primera parte. En general lo ideal es saber cuál es su tamaño normal y monitorizar desviaciones de ese tamaño. Si son 40Gb, pues 40Gb.

    Con todo y con eso, ese crecimiento denota un uso intensivo de tempdb. Te paso un link con unos pocos consejos que seguro que te vendrán bien.


    Alberto López Grande.
    jueves, 12 de marzo de 2009 13:49
    Moderador
  • Yo tengo el mismo problema, pero con el archivo *.LDF, como puedo reducir su tamaño?

    saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    jueves, 12 de marzo de 2009 15:46
  • Hola.

    Del mismo modo que lo harías con cualquier otra base de datos. Te paso un link de todos modos (usa el método 3):


    Alberto López Grande.
    jueves, 12 de marzo de 2009 17:56
    Moderador
  • Muchas Gracias por la respuesta...


    Pero insisto, cuando no hay actividad en el Servidor SQL Server, ¿La TEMPDB no debería liberarse automáticamente?


    Nota:

    El para el tema de cómo comprimir la base de datos tempdb en SQL Server, tiene un link en español que es:

    http://support.microsoft.com/default.aspx?scid=kb%3Bes%3B307487

     

    jueves, 12 de marzo de 2009 18:28
  • Gracias Alberto, lo voy a probar y aviso.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    jueves, 12 de marzo de 2009 19:28
  • Este KB, es más puntual para reducir el tamaño del Log: http://support.microsoft.com/kb/272318/en-us.

    Lo hice muy rápido, no hay ninguna desventaja de hacer esto, o alguns contra-indicaciones?. Es que parece tan fácil reducir el tamaño del Log, de una BD de producción...

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    domingo, 15 de marzo de 2009 5:21
  • Hola.

    Tiene varias desventajas reducir el log. Para empezar, es una tarea de mantenimiento delicada. Luego, cuando reduces, para que al poco aumente, estás incrementando los tiempos de respuesta de las peticiones por el tiempo necesario para el aumento de tamaño. Es por ello que lo mejor es determinar un tamaño con el que nos sintamos cómodos, que sea manejable y no variarlo mucho. Incluso los hay que opinan que lo ideal es que los ficheros de base de datos no deberían tener crecimiento automático. Yo prefiero dormir un poco más tranquilo, y además por las pruebas que he podido hacer, no hay grandes diferencias de rendimiento.

    Pero lo más importante es que cuando reduces el log de una base de datos de usuario, pierdes la secuencia del log, es decir, ya no podrías restaurar ningún backup del log. Así que cuando se haga esto, justo a continuación es necesario hacer un backup completo. Todo ello, con modelo de recuperación full.

    Alberto López Grande.
    domingo, 15 de marzo de 2009 13:44
    Moderador
  • Si por ejemplo al archivo de Log le pongo un tamaño fijo. Que pasa cuando necesita crecer?, automaticamente se reducirá el tamaño o da un error, y hay que estar mirando cuanto esta usando. cuando deshabilito el auto-crecimiento, no me da opción para asignarle el tamaño, como será su crecimiento? o como es la nuez?

    Cuando dices, prefiero dormir más tranquilo, a cuál opción te refieres?

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    lunes, 16 de marzo de 2009 0:11
  • Hola.

    Si a un fichero le pones un tamaño fijo y se llena, entonces obtienes errores, que pueden ser graves (no puedes escribir) o muy graves si se trata del log, ya que pueden concluir en una situación irreparable. Aunque bueno, para eso se hacen los backups. 

    Aunque deshabilites el crecimiento automático, siempre puedes cambiar al tamaño a más grande sin mayores problemas. De hecho es lo que se suele recomendar (aunque yo no lo comparta), monitorizar los espacios reservado y usado y preparar alertas cuando el espacio esté cercano a ocuparse, para realizar el crecimiento manualmente como una operación de mantenimiento.

    En cuanto a dormir algo más tranquilo, con un log de tamaño fijo, eso no es muy factible que digamos.

    Y lo de la nuez no lo he pillado.

    Alberto López Grande.


    lunes, 16 de marzo de 2009 10:46
    Moderador
  • Gracias :).

    saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    lunes, 16 de marzo de 2009 13:51
  • Hola Alberto,

    Tengo otro antecedente, conrespecto al crecimiento excesivo de la tempdb.  Pasa siempre en la noche a las 3 de la mañana, cuando se están realizando los respaldos. ¿qué podría ser?

    Espero tus comentarios

    Saludos,

    Karin Lorena

    miércoles, 25 de marzo de 2009 13:59
  •  

    Hola Sergio:

                    Para poder ayudarte por favor indícame cual es el procedimiento que usas para tus respaldos.

    Te adelanto que el crecimiento de la temdb se da cuando creas tablas temporales, cargas masivas de datos (TDS, BCP), creación de cubos en fin ese tipo de tareas.


    greos
    jueves, 26 de marzo de 2009 23:16
  • Hola Oscar, 
    Supongo que me preguntas a mi, sobre los respaldos por el comentario que hice:

    "Tengo otro antecedente, conrespecto al crecimiento excesivo de la tempdb.  Pasa siempre en la noche a las 3 de la mañana, cuando se están realizando los respaldos. ¿qué podría ser?"

    Te cuento los respaldos se hacen en un solo Plan de mantenimiento, pero sólo de backup, para todas las bases a las 13:00 y a las 03:00, que es cuando más crece la tempdb.

    Por favor responde a mi consulta.

    Gracias

    Karin Lorena
    martes, 31 de marzo de 2009 4:12
  • Hola

    Bueno esta TempBD crece segun el uso de tus DB principales, esta configurada para que sea un 20% del tamaño de la BD mas grande que tengas. Cuando crece?, cuando estar usando SLQServer, es decir que mientras este en uso SQL Server pues el tamaño del TempDB ira en aumento hasta el 20%. Para desaparecer ese tamaño que ha adquirido, basta con cerrar SQLServer y reiniciar el equipo. Automáticamente el tamaño del TempDB se reducira a 10 Mb. Ahora bien el tamaño de esta BD volverá a crecer según como uses tus DB principales. Abajo aparecen relacionadas varias formas de entender por que crece y como limitarlo de forma definitiva, yo solo doy la solucion rapida.

    Saludos

    miércoles, 13 de agosto de 2014 19:40