Skip to content

Reducir tamaño de Base de Datos en SQL Server

Muchas veces hemos tenido limitaciones en el almacenamiento para nuestros servidores. Esto seguramente te ha llevado a pensar cómo comprimir estas necesidades y optimizar tus espacios. Ahora necesitas saber por qué, cómo y cuándo reducir tamaño de base de datos en SQL Server.

Primero evaluar puntos importantes

¿Por qué estamos sin espacio?

No siempre puedes culpar a las estimaciones en los proyectos o en los diseños. Si ya llegaste a los mensajes de errores o a caídas de servidores en Producción con pérdida de servicio, después de solucionarlo revisa estos puntos en el resto de servidores.

  • Relación tamaño de Base(s) de Datos vs Espacio físico asignado
  • Tendencias de crecimiento de información
  • Recovery Model en configuración de Base de Datos
  • Políticas de respaldos (basado en punto anterior)
  • Cantidad y uso de índices

¿Existen estándares para saber cuándo alertar un problema de espacio?

Muchos dirán que sí y que un buen valor para saber cuándo alertar un pronto problema de espacio es cuando tu disco está entre 75-80% de uso. Después de haber visto diferentes sistemas, mi respuesta a la pregunta suele ser lamentablemente un no.

NO por una simple razón: cada base de datos debe evaluarse. No es lo mismo un Datawarehouse, una base IoT, una base transaccional bancaria o un repositorio de información histórica.

¿Entonces cuándo utilizamos SHRINK?

Ya sé que esta era la primera pregunta de la que querías la respuesta. No la estoy evitando pero es importante que primero busques el orígen de tus problemas de espacio.

No voy a hablar en contra de esta práctica de aplicar la reducción de espacio con SHRINKDATABASE pues necesito explicarte muchas cosas más que no alcanzaría esta publicación. Sin embargo quiero que sepas algo importantísimo.

DBCC SHRINKDATABASE es un comando que oficialmente por Microsoft, no está recomendado dado su uso intensivo de I/O.

Es muy fácil dejar sin servicio a tus usuarios mientras ejecutas un SHRINK así que ten cuidado la próxima vez que quieras hacerlo.

Para reducir tamaño de base de datos

Primero verifica los puntos señalados al principio de este artículo.

A veces cuando queremos darle velocidad a nuestras consultas, pecamos de llenar de índices las tablas y, muchas veces, algunos de ellos ni siquiera son utilizados. Obtén un Reporte de Uso de Índices y decide cuáles mantener y cuáles no.

Una de las tareas prinicipales del DBA de SQL Server también es crear buenas políticas de respaldos. Ten en cuenta que el Recovery Model de la base de datos en FULL generará más uso del datafile de log que una en modo SIMPLE.

Evita el SHRINK, evita diseños que generen muchos espacios vacíos pero sobre todo controla el crecimiento de tus bases de datos. SHRINK no es una tarea, no es una práctica de un DBA y mucho menos algo que pienses que debas tener en tareas programadas.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Esta entrada tiene 2 comentarios

  1. Hola Pablo, tengo una BD de 1.2 TB. Ya tiene muchos años y ha pasado por muchos Delete y Truncate de tablas, eso me ha generado mucho espacio «desperdiciado», mas de medio Tera. Hoy tengo 600 GB de datos y Espacio Libre disponible del 50%, y esto quiero liberarlo. El problema es que cuando ejecuto el shrink este demora mas de 1 día y luego me arroja error. El error es: Lock request time out period exceeded. (Microsoft SQL Server, Error: 1222). Que puedo hacer?

    1. Hola Martin. Una base de datos de esa dimensión traerá más retos que a veces sobrepasan la capacidad física. Como puedes ver en el artículo el shrink no es la mejor alternativa, sobretoso por las contras que ofrece. No es que lo recomiende como proceso, pero si realmente es necesario hacerlo (o intentarlo), verifica primero que tu base esté en modo SIMPLE e intenta hacerlo por files y no la base completa, primero log y luego data. Si ya lo has hecho así tal vez tu siguiente intento sería migrar la base de datos donde pueda evitarse el crecimiento de espacio libre. Hope it helps

Los comentarios están cerrados.

Carrito
Volver arriba