Está en la página 1de 3

Compresión de datos

Oracle Database 11g, versión 1, introdujo la Compresión de tabla OLTP, ahora llamada Compresión
de fila avanzada, que mantiene la compresión durante todos los tipos de operaciones de
manipulación de datos, incluido el DML convencional, como INSERT y UPDATE. Además, la
Compresión de filas avanzada minimiza la sobrecarga de las operaciones de escritura en datos
comprimidos, lo que la hace adecuada para entornos transaccionales / OLTP, así como para
almacenes de datos, extendiendo

Los beneficios de la compresión a todas las cargas de trabajo de la aplicación.

La Compresión de fila avanzada utiliza un algoritmo de compresión único diseñado


específicamente para trabajar con aplicaciones OLTP / DW. El algoritmo funciona eliminando los
valores duplicados dentro de un bloque de base de datos, incluso a través de múltiples columnas.
Los bloques comprimidos contienen una estructura llamada tabla de símbolos que mantiene los
metadatos de compresión.

Cuando se comprime un bloque, los valores duplicados se eliminan al agregar primero una copia
única del valor duplicado a la tabla de símbolos. Cada valor duplicado se reemplaza luego por una
breve referencia a la entrada apropiada en la tabla de símbolos.

A través de este diseño innovador, los datos comprimidos son autocontenidos dentro del bloque
de la base de datos, ya que los metadatos utilizados para traducir los datos comprimidos a su
estado original se almacenan en el encabezado del bloque.

Cuando se compara con los algoritmos de compresión de la competencia que mantienen una tabla
de símbolos de la base de datos global, el enfoque de Oracle ofrece importantes beneficios de
rendimiento al no introducir E / S adicionales (necesarias con una tabla de símbolos global) al
acceder a datos comprimidos.

Beneficios de la compresión avanzada de hileras

La relación de compresión lograda en un entorno determinado depende de la compresión de los


datos, específicamente de la cardinalidad de los datos. En general, las organizaciones pueden
esperar reducir su consumo de espacio de almacenamiento en un factor de 2x a 4x mediante el
uso de la Compresión de fila avanzada. Es decir, la cantidad de espacio consumido por los datos no
comprimidos será de dos a cuatro veces mayor que la de los datos comprimidos.
Los beneficios de la Compresión de filas avanzada van más allá de los ahorros de almacenamiento
en disco. Una ventaja significativa es la capacidad de Oracle para leer bloques comprimidos (datos
e índices) directamente, en la memoria, sin descomprimir los bloques. Esto ayuda a mejorar el
rendimiento debido a la reducción en la E / S, y la reducción en las llamadas al sistema
relacionadas con el

Operaciones de E / S. Además, el caché del búfer se vuelve más eficiente al almacenar más datos
sin tener que agregar memoria.

Gastos generales mínimos

Como se describió anteriormente, la Compresión de fila avanzada no tiene un impacto adverso en


las operaciones de lectura. Aunque se puede realizar un trabajo adicional mientras se escriben los
datos, es imposible eliminar completamente la sobrecarga de rendimiento para las operaciones de
escritura. Hay varias optimizaciones que minimizan esta sobrecarga para la fila avanzada

Compresión.

Una optimización clave es que la base de datos Oracle comprime los bloques en modo batch en
lugar de comprimir los datos cada vez que se realiza una operación de escritura. Un bloque recién
inicializado permanece sin comprimir hasta que los datos en el bloque alcancen un umbral
controlado internamente. Cuando una transacción hace que los datos en el bloque alcancen este
umbral, todos los contenidos del bloque se comprimen. Posteriormente, a medida que se agregan
más datos al bloque y se alcanza nuevamente el umbral, se vuelve a comprimir todo el bloque
para lograr el nivel más alto de compresión.

Este proceso se repite hasta que Oracle determina que el bloque ya no puede beneficiarse de una
compresión adicional. Solo la transacción que realiza la compresión del bloque experimentará una
leve sobrecarga de compresión: la mayoría de las transacciones DML en bloques comprimidos
tendrán exactamente el mismo rendimiento que tendrían con los bloques sin comprimir. Algunas
de las optimizaciones adicionales para el rendimiento de Compresión de fila avanzada incluyen:

Compresion parcial

Con la Compresión de fila avanzada, cuando el bloque está lleno, se comprime. Se agregan más
filas (ya que ahora pueden caber más filas en el bloque) y el proceso de recompresión se repite
varias veces hasta que las filas en el bloque no puedan comprimirse más. Los bloques
generalmente se comprimen y se vuelven a formatear en su totalidad, pero en algunos casos, el
bloque se puede comprimir parcialmente, lo que resulta en ahorros de CPU y compresión
adicional.

La función de compresión parcial se usa en bloques ya comprimidos (es decir, comprimido con
Compresión de fila avanzada). Busca filas sin comprimir y las transforma en una forma
comprimida, agregando o reutilizando símbolos del diccionario de bloques, esto es más rápido que
volver a comprimir todo el bloque.

La recompresión de bloque completo también requiere que no se bloqueen filas en el bloque o


que todas las filas en el bloque estén bloqueadas por la transacción que inserta filas en el bloque.
La compresión parcial evita estos requisitos al bloquear y comprimir solo las filas que están sin
comprimir y desbloquear, por lo que puede tener lugar en presencia de otras transacciones no
confirmadas en el bloque.

También podría gustarte