Solo me quedan 2 GB, así que necesito eliminar esta tabla de historial. Esta tabla ahora está vacía pero no se libera el espacio en disco de la base de datos. Y el archivo de la base de datos es de 320 GB.
sql-server
sql-server-2012
truncate
Lucas Rodrigues Sena
fuente
fuente
Respuestas:
Si hace referencia al consumo real del archivo de base de datos en el volumen, entonces SQL Server no lo maneja automáticamente . El hecho de que haya eliminado datos de la base de datos no significa que los archivos de la base de datos se reducirán para adaptarse solo a los datos existentes.
Lo que estaría buscando, si tiene que reclamar espacio en el volumen, estaría reduciendo el archivo en particular
DBCC SHRINKFILE
. Vale la pena señalar algunas buenas prácticas, según esa documentación:También de nota:
Seguramente hay algunas cosas a considerar al hacer esto, y le recomiendo que eche un vistazo a la publicación del blog de Paul Randal sobre lo que sucede cuando realiza esta operación.
El primer paso definitivamente sería verificar cuánto espacio y espacio libre realmente puede reemplazar, así como el espacio utilizado en los archivos:
fuente
Este es un comportamiento normal cuando trunca la tabla y que implica la eliminación de más de 128 extensiones según los libros en línea
Tendría que esperar y, por supuesto, tendría que reducir manualmente el archivo para recuperar espacio. También vale la pena mencionar que la reducción causa fragmentación lógica y debe evitarse a menos que su necesidad sea grave. Tendría un poco de equilibrio entre la reducción y la fragmentación. Es mejor preguntarse si la reducción realmente resolvería el problema teniendo en cuenta el escenario en el que los datos volverán a crecer de todos modos.
Use la consulta a continuación para verificar cuánto espacio libre hay en la base de datos
fuente
Además de las respuestas de Tom y Shanky, si su base de datos contiene datos LOB / BLOB, el DBCC SHRINKFILE puede no funcionar. Si ese es el caso, entonces tiene dos opciones, dependiendo de si puede desconectar la base de datos o no. Si puede desconectar la base de datos, deberá copiar los datos y volver a copiarlos para eliminar el espacio vacío. Puede lograr esto mediante uno de los siguientes:
Si no puede desconectar la base de datos, puede usar el comando DBCC SHRINKFILE con la opción EMPTYFILE .
Detalles para la copia sin conexión: http://support.microsoft.com/kb/324432/en-us
Información actual para la opción EMPTYFILE http://msdn.microsoft.com/en-us/library/ms189493(v=sql.105).aspx
fuente