Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

No se reduce el tamaño después de eliminar la mayoría de filas

Estas en el tema de No se reduce el tamaño después de eliminar la mayoría de filas en el foro de SQL Server en Foros del Web. Buenas a todos. Estoy con una bd de SQL 2005. Me encuentro en que durante el útimo periodo, la base de datos ha crecido muy ...
  #1 (permalink)  
Antiguo 19/04/2011, 17:14
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
No se reduce el tamaño después de eliminar la mayoría de filas

Buenas a todos.
Estoy con una bd de SQL 2005.
Me encuentro en que durante el útimo periodo, la base de datos ha crecido muy rápido, y ha llegado a adquirir mucho tamaño:

BD file = 722 MB
Espacio Libre = 1,05 MB
LOG file = 1 MB

He visto que han sido dos tablas las que han crecido mucho en poco tiempo.
Entonces he decidido vaciar las dos tablas con dos instrucciones DELETE, y para mi sorpresa, el tamaño de la base de datos se ha mantenido y ha augmentado el "espacio libre", mientras que el LOG ha crecido muchísimo:

BD file = 722 MB
Espacio Libre = 616 MB
LOG file = 1586 MB

He eliminado algo más de 1.000.000 de registros y el tamaño total ha augmentado a más del triple!
Veo claro que ahora es necesario realizar alguna clase de compactación (como en Access) o algun proceso particular de SQLServer para reducir este tamaño, pero no sé exactamente qué necesito realizar y cómo.
¿Alguien puede iluminarme un poco?
Gracias.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 19/04/2011 a las 17:36
  #2 (permalink)  
Antiguo 20/04/2011, 07:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Necesitas hacer un "Shrink" a tu base de datos, ya que aunque elimines la informacion esta queda en los logs, asi que tienes que eliminar esos logs lo cual se hace haciendo un "shrink" :)


Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 20/04/2011, 10:36
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Hola, Gracias Libras!
Bien, el Tema del LOG es uno de los temas a solucionar, gracias por tu respuesta.
Pero luego está el tema del espacio libre, que me preocupa más, y no sé cómo reducir ese espacio.
Un saludo.
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 20/04/2011, 10:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Tambien puedes hacer aparte del "shrink" que es para liberar espacio en disco tanto como en logs hacer truncates de algunas tablas, lo otro que puedes hacer es revisar los parametros en la configuracion de tu base porque 722MB es muy poco espacio para una base ya que SQL te permite base de datos mas grandes a menos que tengas poco espacio en disco jejeje

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 20/04/2011, 11:10
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

jeje, bueno, eso de que es poco sería según se mire...
Para mi es mucho, en función del tamaño que debe tener esa base de datos, a juzgar por la información que debe guardar, que yo se cuanta es porqué la he diseñado y he programado la web que trabaja con ella.
Esa base de datos debe estar sobre los 100MB y 722 es mucho
Gracias por tus respuestas Libras, tengo que probar el tema del SHRINK, pero ya!
Saludos.
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 20/04/2011, 12:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Tal vez cuando fue creada, se le dejo un minimo de espacio en 700, digo, todo puede suceder.
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 20/04/2011, 17:09
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Hola iislas.
En principio fue creada sin más, con los parámetros por defecto.
Mi opinión es que ha crecido de repente por un desarrollo que apliqué, que guardaba información de las sesiones y páginas vistas, y eso ha augmentado en poco tiempo el tamaño.
He decidido eliminar esa funcionalidad, y eliminar todas esas filas de la BD.
Y el caso es que el tamaño en disco se ha mantenido, pero ese "Espacio libre" ha crecido mucho.
Pienso que ahora la idea sería reducir ese espacio libre para volver a tener la base de datos en su estado "inicial".
Si hubiera alguna instrucción para ello lo agradecería más que no tener que hacerlo de forma manual a través de Management Studio.
Se agradecen vuestras respuestas.
Un saludo.
__________________
..:: moNTeZIon ::..
  #8 (permalink)  
Antiguo 21/04/2011, 01:43
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

¿Sería esto lo que necesito?

En este ejemplo se reduce el tamaño de los archivos de datos y de registro de la base de datos de usuario UserDB para dejar un 10 por ciento de espacio libre en la base de datos.

DBCC SHRINKDATABASE (UserDB, 10);
GO

La verdad es que no sé si conviene dejar un 10% o más. No se en base a qué tomar esa decisión. Veo que el crecimiento automático de los ficheros marca lo siguiente:

MDF = En 1 MB, crecimiento sin límite
LDF = En un 10%, crecimiento limitado a 2097152 MB

Supongo que la intención es reducir el espacio y dejarlo configurado de esta forma. que es como viene configurado por defecto.
En fin, se aceptan opiniones de cualquier tipo que ayuden a entender esto.
Saludos.
__________________
..:: moNTeZIon ::..
  #9 (permalink)  
Antiguo 21/04/2011, 08:46
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Hola, sólo quería comentar que la siguiente instrucción:

DBCC SHRINKDATABASE (UserDB, 10);

Ha funcionado perfectamente y ha solucionado mi problema.
Gracias una vez más por la ayuda.
Saludos.
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 22/04/2011, 09:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Coloca la instruccion en un job que ejecutes al menos 1 vez cada semana, esto deberia ser parte de un PLAN DE MANTENIMIENTO de tu base
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 03/05/2011, 16:11
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: No se reduce el tamaño después de eliminar la mayoría de filas

Ooooooook.
Oído cocina.
__________________
..:: moNTeZIon ::..

Etiquetas: filas, reduce, tamaño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:39.