Desde SQL Server 2008 es posible comprimir los datos a nivel de filas y páginas y respaldos. En este pequeño artículo hablaré sobre la compresión a nivel de filas. Para páginas y respaldos vendrán en otra entrega.
Compresión en Filas
La compresion de filas está recomendada cuando se tiene una alta carga de trabajo de escritura en disco. Es posible comprimir las filas en los siguientes escenarios:
- Tablas con y sin indices agrupados y no agrupados
- Vistas indexadas
- Indices y tablas particionadas
Recomendaciones
- Evaluar el ahorro que se genera con la compresion
- No comprimir todos los elementos de la base de datos sin antes evaluar. Si es pequeño no es necesario comprimir. Considerar comprimir si el elemento es accesado pocas veces.
Código
--tamaño de tabla
exec sp_spaceused MiTabla
go
--compresion por fila
alter table MiTabla rebuild with(data_compression = row)
go
exec sp_spaceused MiTabla
go
Primero muestra el espacio utilizado por la tabla que vamos a comprimir, luego la comprime y al final muestra el espacio ocupado por la tabla ya comprimida para comparar.
Al realizar esta prueba, nos da el siguiente resultado sobre una tabla sin comprimir:
Pero al comprimir por fila la misma tabla, nos da el siguiente resultado:
Los números hablan solos.
Saludos!