Marko Zivkovic

Compresión de datos de SQL Server mediante el Asistente de compresión de datos de SSMS

July 4, 2019 by

Cada DBA sabe que la base de datos va creciendo con el tiempo y que el crecimiento nunca se va a detener. Cuantos más datos se encuentran en la base de datos, más tiempo (trabajo) se necesita el SQL Server para tratar con ellos. A partir del SQL Server 2008, hay nuevas herramientas disponibles para podernos ayudar a los DBA a reducir el tamaño de la base de datos.

En este artículo se describirá la compresión de datos de SQL Server y se explicará el Asistente de compresión de datos de SSMS.

La compresión de datos de SQL Server reduce la cantidad de espacio físico en disco requerido para almacenar datos y la cantidad de E/S de disco se guarda al realizar la compresión de datos de SQL Server.

La compresión de datos de SQL Server no comprime toda la base de datos de una vez, en su lugar, se puede usar en los siguientes objetos de base de datos:

  • Tabla que se almacena como un índice agrupado
  • Tabla almacenada como una pila
  • Tablas e índices particionados
  • Índice no agrupado
  • Vista indexada

Hay dos tipos de compresiones de datos de SQL Server:

  • Compresión de datos a nivel de fila
  • Compresión de datos a nivel de página

La compresión de datos a nivel de fila

Esencialmente, la compresión de filas es la compresión de tipos de datos, lo que significa que este tipo de compresión tomará líneas de caracteres fijas y las almacenará como tipos de datos de longitud variable y eliminará a los caracteres en blanco.

Como ejemplo, si se usa el tipo de datos Char (150) para la columna y para almacenar la fecha de “Esto es prueba”, solo se necesitarán doce caracteres, la compresión de datos de nivel de fila eliminará los caracteres en blanco y solo se almacenarán 12 caracteres.

La compresión de datos a nivel de fila no almacena valores NULL o 0, reduce la cantidad de metadatos utilizados para almacenar una fila.

Puede hallar más información sobre la compresión de datos de nivel de fila en la siguiente página: Implementación de la compresión de fila

Compresión de datos a nivel de página

Este tipo de compresión nos ofrece un nivel más alto de compresión de datos de SQL Server que la compresión de datos de nivel de fila, pero el uso de la CPU es mayor.

La compresión de datos de nivel de página comienza con la compresión de datos de nivel de fila y luego utiliza dos compresiones adicionales: compresiones de prefijo y diccionario.

La compresión de prefijo suprime los patrones de repetición desde el principio de los valores en la columna y los sustituye con una referencia apropiada. Esa información se guarda en la estructura de información de compresión (CI) que sigue inmediatamente al encabezado de la página.

La compresión del diccionario encuentra los valores repetidos en toda la edad y los coloca en el área de CI.

La principal diferencia entre la compresión de prefijo y la compresión de diccionario es que la compresión de prefijo busca los datos repetidos en una columna, mientras que la compresión de diccionario busca los valores repetidos en toda la página de datos.

Puedes encontrar más información sobre la compresión de datos a nivel de página en la siguiente página: Implementación de compresión de página.

Asistente de compresión de datos

La compresión de datos de SQL Server se puede utilizar por medio del Asistente de compresión de datos de SQL Server Management Studio (SSMS) o mediante T-SQL.

Para poder comprimir los datos usando el Asistente de compresión de datos, vaya al Explorador de objetos, busque (seleccione) una tabla que desee comprimir, haga clic con el botón derecho y, desde el submenú Almacenamiento, elija el comando Administrar compresión:

Seguidamente de hacer clic en el comando Administrar compresión, aparecerá la página de bienvenida del Asistente de compresión de datos:

Mostrar esta página al inicio del proceso de compresión es algo opcional. Para poder omitir esta página, la próxima vez que inicie el Asistente de compresión de datos, marque la casilla de verificación “No volver a mostrar esta página de inicio“.

Para poder continuar, presione el botón Siguiente. La siguiente página que aparece en el proceso de compresión es la página <Seleccionar tipo de compresión:

En esta página, el tipo de compresión debe ser elegido y hay tres tipos: Fila, Página, Ninguno.

Si se selecciona el tipo Ninguno, no se realizará ninguna compresión.

Si un objeto (tabla, índice) está particionado, entonces, para poder habilitar el tipo de compresión en todas las particiones, se debe marcar la casilla de verificación “Usar el mismo tipo de compresión para todas las particiones“. Esto nos habilitará el cuadro desplegable y deshabilitará el cuadro Tipo de compresión:

El cuadro de la Partición Nr. mostrará una lista de todas las particiones que existen en una tabla/índice. Este campo no puede ser modificado.

La columna Tipo de compresión es para escoger un tipo de compresión para todas las particiones. Si la casilla de verificación “Usar el mismo tipo de compresión para todas las particiones” está activada, entonces la columna Tipo de compresión está desactivada.

La columna Límite muestra el límite de la partición. La columna Límite es la columna de solo lectura; lo que quiere decir que no puede ser modificada.

La columna de recuento de filas muestra el número total de filas en la partición. La columna Recuento de filas no se puede modificar (solo lectura).

La columna de espacio actual muestra el tamaño en megabytes (MB) que ocupa la partición. Los datos en esta columna no se pueden modificar (solo lectura).

La columna de espacio comprimido solicitado calcula el tamaño de estimación de la partición que tomará después de la compresión usando el tipo en la columna Tipo de compresión. Este valor es visible después de presionar el botón Calcular y no se puede modificar:

Al momento de hacer clic en el botón Calcular, se calcula (estima) el tamaño de las particiones. Dependiendo del valor establecido en la columna Tipo de compresión, el tamaño calculado (estimado) se mostrará en la columna Espacio comprimido solicitado.

Una vez que haya finalizado la estimación del tamaño en Seleccionar tipo de compresión, presione el botón Siguiente para poder continuar. La siguiente página es la página de Seleccionar una opción de salida:

En esta página, se puede configurar cómo se harán los cambios de compresión de datos de SQL Server:

Posteriormente de elegir cómo se realizará la compresión de datos de SQL Server, en este ejemplo, se va a seleccionar el tipo de acción Ejecutar inmediatamente y haga clic en el botón Siguiente para poder continuar.

En la siguiente página que aparece en el Asistente de compresión de datos es la página Resumen:

En esta página muestra todas las acciones que realizará el Asistente de compresión de datos después de presionar el botón Finalizar.

La última página es la página Progreso del Asistente de compresión, que muestra la información de progreso sobre las acciones que se realizan:

Bajo el botón Informe (Reporte), se encuentran un par de opciones para poder crear un informe que contiene los resultados del Asistente de compresión de datos:

Marko Zivkovic

Marko Zivkovic

Marko es un ingeniero mecánico a quien le gusta jugar basketball, football (table-soccer) y escuchar música rock. Está interesado en código SQL, desarrollo PHP y técnicas en HTML y CSS.
Actualmente trabajando para ApexSQL LLC como un Ingeniero de Ventas de Software, él está ayudando a los clientes con problemas técnicos y hace aseguramiento de calidad para los complementos ApexSQL Complete, ApexSQL Refactor y ApexSQL Search.

Ver todas las entradas de Marko Zivkovic
Marko Zivkovic
SQL Server Management Studio

Acerca de Marko Zivkovic

Marko es un ingeniero mecánico a quien le gusta jugar basketball, football (table-soccer) y escuchar música rock. Está interesado en código SQL, desarrollo PHP y técnicas en HTML y CSS. Actualmente trabajando para ApexSQL LLC como un Ingeniero de Ventas de Software, él está ayudando a los clientes con problemas técnicos y hace aseguramiento de calidad para los complementos ApexSQL Complete, ApexSQL Refactor y ApexSQL Search. Ver todas las entradas de Marko Zivkovic

90 Views