viernes, diciembre 3, 2021

Como reducir el tamaño de la base de datos y del log en SQL Server

Generalmente el tamaño de nuestra base de datos va aumentando conforme se utilice, y no necesariamente por que se le agreguen nuevos datos, sino por consultas, transacciones, errores, índices, etc. Por este motivo tenemos que estar regularmente brindandole mantenimiento a nuestras bases de datos.

Como primer paso vamos a consultar el tamaño actual de la base de datos, para que, posteriormente podamos comparar el resultado luego de las instrucciones que vamos a realizar. Entonces ejecutaremor desde el SQL Query Analyzer el siguiente comando DBCC UPDATEUSAGE(0).

El DBCC UPDATEUSAGE(0) restablece la generación de informes de uso, de manera que sp_spaceused pueda informar correctamente acerca del tamaño de la base de datos, el espacio sin asignar, el tamaño de los datos, el tamaño del índice y el espacio sin usar. Normalmente, debe realizar esta operación sólo después de reconstruir los índices. (Tenga en cuenta que si no ejecuta DBCC UPDATEUSAGE(0) después de reconstruir los índices, sp_spaceused informará acerca de los números que existían antes de reconstruir los índices.)

Código que se debe de ejecutar en el SQL Query Analyzer:

DBCC UPDATEUSAGE(0)

Luego desde el Query vamos a ejecutar sp_spaceused que nos mostrará el tamaño actual de la base de datos, el espacio sin asignar, el tamaño de los datos, el tamaño del índice y el espacio sin usar.

Código que se debe de ejecutar en el SQL Query Analyzer:

sp_spaceused

Guarda esta información para que luego de las operaciones de mantenimiento puedas comparar y comprobar que realmente el tamaño de la base de datos ha sido reducido.

Para reducir el tamaño del fichero físico debemos utilizar una opción del menú del SQL Enterprise Manager, seleccionamos con el boton derecho del mouse la base de datos y optamos por "all tasks" (todas las tareas) luego "Shrink Database"

En esa acción se nos abre un cuadro de diálogo donde seleccionamos la opción "Move pages to beginning of file befote shrinking" pulsamos OK y esto reducirá el tamaño del fichero fisico.

Una vez realizado este proceso es recomendable utilizar las siguientes instrucciones en el Query Analyzer para borrar el log y reducir su tamaño.

BACKUP LOG base_de_datos WITH TRUNCATE_ONLY

DBCC SHRINKDATABASE ( base_de_datos , TRUNCATEONLY )

Luego de haber realizado estas acciones podemos volver a ejecutar los comandos mostrados arriba DBCC UPDATEUSAGE(0) y sp_spaceused en el Query para comparar el tamaño actual de la base de datos con el tamaño que tenía antes de las acciones de mantenimiento.

Importante es tener siempre respaldos de nuestra base de datos por cualquier inconveniente que se nos pueda prensentar, mas aún tener un respaldo actualizado antes de realizar cualquier operación de mantenimiento.

Ahora el siguiente paso luego de realizar la reducción del log de nuestra base de datos, se recomienda reconstruir los índices para mejorar el rendimiento de la base de datos. Aquí les dejo el link del artículo donde se explica como hacerlo. Como reconstruir los índices en nuestra base de datos SQL Server




Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

Calcular la distancia entre dos puntos geográficos en SQL Server

En este ejemplo mostramos como calcular la distancia en metros o kilómetros entre dos puntos geográficos, por latitud y longitud. El resultado lo obtenemos en metros o kilómetros.
SQL Server - Merge

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.

DELETE con subconsulta o INNER JOIN

En el siguiente ejemplo se explica la forma en que se pueden eliminar registros en nuestras tablas con instrucciones DELETE más complejas que las...

Últimos artículos

Flutter - Instagram Clone App

Instagram Clone App con Flutter

Marvin Stanley Valenzuela nos comparte un reto y genialidad a la vez, excelente práctica de la que podemos aprender mucho, diseñó en...

¿Cómo agregar una IP adicional en una VM Ubuntu en Azure?

Lo más común al momento de crear y configurar un nuevo servidor es que a este le asigne un solo IP, pero...
flutter one year

Después de un año con Flutter, esto es lo que aprendí

La historia comenzó cuando un día desperté pensando en tener un nuevo proyecto personal. Me dije a mí misma que hay muchas...
promocionar app

Cómo promocionar gratis tu app usando tappx

Como todos los que me siguen y mis redes sociales sabrán, recientemente lancé mi primera aplicación, pero más allá del desafío tecnológico de...