Reducir el tamaño en SQL Server de una base de datos

Publicado el 10 febrero 2023 por Daniel Rodríguez @analyticslane

Las bases de datos generalmente suelen ocupar mucho espacio en el disco. Aunque no siempre todo contiene datos. Al eliminar registros en una base de datos, generalmente el tamaño de los archivos no se reduce porque estos se marcan como eliminados pero el espacio no se elimina del disco. A medida que pase el tiempo, esto puede suponer una cantidad importante de espacio en el disco desaprovechado. Para solucionar este problema se puede comparar los archivos, lo que permite reducir el tamaño en SQL Server de una base de datos.

Compactar una base de datos en SQL Server

Para poder compactar una base de datos SQL Server se tiene que abrir Microsoft SQL Server Manager Studio y conectar con la base de datos. Una vez hecho esto, en el menú lateral derecho, se selecciona la base de datos y en el menú que se obtiene con el botón secundario se selecciona la opción Tasks > Shrink > Database.

Al seleccionar esta opción se deberá obtener una ventana como la que se muestra a continuación.

En esta venta se nos indica que la base de datos ocupa 14Gb, aunque hay mucho espacio libre. Ahora se puede pulsar en el botón OK para comparar la base de datos. Aunque, si se desea ahora más espacio, se puede seleccionar la opción Reorganize files before releasing unused space.

Una vez compactado y reducido el tamaño de la base de datos el resultado puede suponer un importante ahorro de espacio en disco.

¿Usar la opción de reorganizar o no?

La opción Reorganize files before releasing unused space consigue reducir más el tamaño de la base de datos, pero puede afectar al rendimiento. En primer lugar es un proceso más costoso, ya que mueve los datos de un archivo a otro, por lo que afectará considerablemente el rendimiento de la base de datos mientras se realiza. Por otro lado, también provoca una fragmentación de los índices. Lo que se puede solucionar volviendo a generar estos al finalizar.

Así, la opción Reorganize files before releasing unused space libera más espacio pero se debe usar con precaución.

Conclusiones

En esta ocasión se ha visto cómo se puede reducir el tamaño en SQL Server de una base de datos. Realizar un par de pasos puede conseguir un ahorro considerable de espacio.