Social Icons

twitter facebook google plus linkedin

martes, 3 de abril de 2012

Compresión en SQL Server

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:

[caption id="attachment_1261" align="alignnone" width="300" caption="Tabla sin comprimir"]Tabla sin comprimir[/caption]

Pero al comprimir por fila la misma tabla, nos da el siguiente resultado:

[caption id="attachment_1262" align="alignnone" width="300" caption="Tabla comprimida"]Tabla comprimida[/caption]

Los números hablan solos.

 

Saludos!