Compartar base de datos en SQL

Yo tengo varias BD en mi sql, hay una donde se tiene una tabla la cual tenia 92.733.756 registros de los cuales borres la mitad, pero no me libero espacio en disco, es decir continua la misma cantidad, ¿mi pregunta es si en SQL no existe alguna instrucción como en Access que tiene el compactar para liberar ese espacio en disco?

2 Respuestas

Respuesta
1
En el administrador corporativo
Marcas la base de datos y en todas las tareas / all tasks, haces shrink database / reducir la base de datos.
Tambien puedes usar algo como truncate log /on checkpoint en las propiedades de base de datos
Si nada de esto funciona
Mira a ver si exportando a una base de datos nueva vacía, la nueva te ocupa lo mismo que la vieja
Si es menor,
es posible que los registros borrados estén todavía en el log de transacciones de la vieja, por si deseas deshacer la acción o algo así
aunque posibliemente con esa cantidad no puedas recuperar
Para evitar esto en lo sucesivo podrías probar cosas del tipo a meter el delete dentro de una transacción que confirmas al final
---
Begin trans
delete...
Commit trans
---
O desactivar temporalmente el registro de transacciones por otros métodos antes de borrar y reactivarlo después
Un método más drástico es desconectar la bbdd, borrar el log y volver a conectar la base de datos pero solo el archivo mdf (attach from single file db) siempre y cuando no tengas nada que deshacer.
Respuesta
1
Lo único que puedes hacer es limpiar el log de transacciones desde las herramientas administrativas de sql server y de ahí partir para generar un umbral de autolimpieza del mismo, así como dimensionarlo a un tamaño que, sugiero no sea mayor al 30% del tamaño de la base de datos, para que tenga un límite de crecimiento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas