Saltar al contenido

¿Cómo reducir el tamaño de la base de datos en SQL Server por codigo?

En ocasiones nuestro log de file en SQL Server se aumenta considerablemente de espacio. Esto ocurre debido al volumen de transacciones que pueden ser generados dentro de su sistema para reducir el tamaño de la base de datos es sencillo desde el management studio y no importa si su version de sql server 2014 2019, developer o express.

Por lo cual te recomiendo que veas este articulo completo ahora!!

Índice

    Shrink database vs truncate table

    Digamos que tengo una base de datos de SQL Server con una tabla que almacena millones de registros, mientras auditars deseo liberar espacio de mi base de datos datos especificamente de la tabla porque ya no necesita conservar estos datos. Para esto utilizo el el comando truncate y libero de mi base de datos todo estos registros.

    Sin embargo, a pesar de limpiar la la tabla su base de datos continua pesando lo mismo, el tamaño de su archivo mdf y ldf en el disco duro no cambió. Digamos que el tamaño del archivo para en la base de datos era de 160 GB y al usar el truncate libero 20 GB. Espera que el tamaño del archivo baje a 140 GB, pero en su lugar permanece en 160 GB.

    Esto también es cierto si «trunca» la tabla, el tamaño del archivo seguirá siendo el mismo que antes de que lo truncara para estos casos necesitamos utilizar el comando Shrink database el cual explicamos detalladamente en este articulo.

    Base de datos de ejemplo para escue...
    Base de datos de ejemplo para escuelas

    Por que el archivo Log (Ldf) crece de tamaño tan rapido ?

    El log de transacciones contiene todas las transacciones y registro de todas las transacciones ejecutadas en la base de datos. El archivo suele crecer en relación con la cantidad de transacciones que se ejecutan en la misma.

    Aunque son muchos los motivos que pueden hacer que el log se mantenga en crecimeinto y algunos podrian decir que el modelo de recuperación en modo simple influye. Simpre debemos tomar en cuenta que estar vigilante de estas apliciones criticas para evitar este crecimiento desmedido.

    Si tienes dudas de ¿Qué es un log y para qué sirve? te recomiendo este enlace.

    Cuando reducir tu archivo log o transaccional en sql server

    1. Después de una copia de seguridad completa.
    2. Después de eliminar registros o tablas.
    3. Después de un largo periodo operativo, este mantenimiento se hace en los sistemas transaccionales con alto volumen de usuarios y transacciones diarias.

    Como auditor el tamaño de mi archivo log / transaccionales?

    Para esto tenemos multiples herramientas de monitoreo pero si quieres saber como consultar el tamaño de los arhivos de base de datos en sqlserver por codigo? te dejo el siguiente script que te permitira consultar el archivo log y mdf.

    SELECT file_id
    	,NAME
    	,type_desc
    	,physical_name
    	,size
    	,max_size
    FROM sys.database_files;

    Shrink database sql server script

    Truncar y reducir el tamaño del log de transacciones de SQL Server ,limpiar de manera lógica  los archivos de registro de logs o transaccionales  de una base de datos de SQL Server permitiran reducir de forma significativa la base de datos, El truncamiento del registro no reduce el tamaño del archivo de registro físico o mdf.

    Backup log ejemplo

    to disk  =‘C:\test\BackupLog.bak’

    –Una vez hecho el backup consultamos el nombre lógico de los archivos del log

    sp_helpdb ejemplo

    Ahora luego de nuestro backup podemos pasar a realizar nuestro script

    — Antes de truncar el log cambiamos el modelo de recuperación a SIMPLE.

    ALTER DATABASE ejemplo

    SET RECOVERY SIMPLE;

    GO

    –Reducimos el log de transacciones a 1 MB.

    DBCC SHRINKFILE(ejemplo_log, 1);

    GO

    — Cambiamos nuevamente el modelo de recuperación a Completo.

    ALTER DATABASE ejemplo

    SET RECOVERY FULL;

    En conclusion

    Las base de datos pueden crecer principalmente en el archivo log esto debido a que este archivo almacena todas las transacciones de la base de datos por lo cual es importante conocer como reducir el tamaño del archivo log? como consultar su tamaño de base de datos ? y por ultimo como y cuando debo reducir mi base de datos?

    Gracias hasta la proxima!!

    Bye!!