12
Table Compression Enhancements

Table Compression Enhancements

Embed Size (px)

Citation preview

Page 1: Table Compression Enhancements

Table Compression

Enhancements

Page 2: Table Compression Enhancements

*La compresión de tablas fue incorporada desde Oracle 9i, como una función de ahorro de espacio para los proyectos de almacenamiento de datos.

*Además de ahorrar espacio de almacenamiento, la compresión puede resultar en un mayor rendimiento de E / S y el uso reducido de la memoria en la caché del búfer. Estas ventajas vienen a un costo, ya que la compresión incurre en una sobrecarga de la CPU, por lo que no van a ser de beneficio para todos.

*Nota. Compresión de tablas es una función gratuita de la base de datos Enterprise Edition, pero la compresión OLTP requiere la opción Advanced Compression la cual requiere una licencia especial.

*La cláusula de compresión se puede especificar a nivel de tablespace, la tabla o partición con las siguientes opciones:

Page 3: Table Compression Enhancements

*NOCOMPRESS - La tabla o partición no se comprime. Esta es la acción por defecto cuando no se especifica ninguna cláusula de compresión.

*COMPRESS - Esta opción se considera adecuado para los sistemas de almacenamiento de datos. La compresión está habilitada en la tabla o partición durante la trayectoria directa para inserción.

*COMPRESS FOR DIRECT_LOAD OPERATIONS - Esta opción tiene el mismo efecto que el simple la cláusula COMPRESS.

*COMPRESS FOR ALL OPERATIONS - Esta opción se considera adecuado para sistemas OLTP. Como su nombre lo indica, esta opción permite la compresión de todas las operaciones, incluidas las declaraciones regulares DML. Esta opción requiere que el parámetro de inicialización COMPATIBLE que esta disponible a partir de la versión 11.1.0. En 11gR2 esta opción ha sido renombrado a COMPRESS FOR OLTP y el nombre original ha quedado obsoleto.

Page 4: Table Compression Enhancements

*Los siguientes ejemplos muestran las diferentes opciones de compresión aplicada a nivel de tablas y particiones:

Page 5: Table Compression Enhancements

*Los ajustes de compresión a nivel de tabla se reflejan en las columnas COMPRESSION y COMPRESS_FOR de las vistas [DBA|ALL|USER]_TABLES.

Las tablas definidas con COMPRESSION a nivel de partición o a nivel de tabla no muestran valores en la columna COMPRESSION.

Los justes de compresión a nivel de partición se reflejan en las columnas COMPRESSION y COMPRESS_FOR de las vistas [DBA|ALL|USER]_TAB_PARTITIONS.

Page 6: Table Compression Enhancements

Los ajustes de compresión para tablas y las particiones pueden ser modificados mediante el comando ALTER TABLE. Las alteraciones no tienen ningún efecto en los datos existentes, sólo en las nuevas operaciones aplicadas a la tabla.

Los ajustes predeterminados de compresión se pueden especificar a nivel de tabla utilizando los comandos CREATE TABLESPACE y ALTER TABLESPACE. Los ajustes actuales se muestran en las columnas DEF_TAB_COMPRESSION y COMPRESS_FOR de la vista DBA_TABLESPACES.

Page 7: Table Compression Enhancements
Page 8: Table Compression Enhancements
Page 9: Table Compression Enhancements

Cuando se especifica la compresión en múltiples niveles, siempre se utiliza el ajuste más específico. Como tal, la configuración de las particiones siempre anulan los ajustes de la tabla, que siempre prevalece sobre la configuración del espacio de tablas.

Las restricciones asociadas con la compresión de la tabla son:

*Las tablas comprimidas sólo se les pueden agregar o eliminar columnas si se utilizó opción COMPRESS FOR ALL OPERATIONS.

*Las tablas comprimidas no debe tener más de 255 columnas.

*La compresión no se aplica en lob segments.

*La compresion de tablas es valida solo para Heap Organized Tables (HOT) y no para IOT (Index Organized Tables).

*La cláusula de compresión no se puede aplicar a particiones hash o hash-list. En su lugar, deben heredar sus ajustes de compresión del tablespace, de la tabla o configuración de las particiones.

*La compresión de la tabla no se puede especificar para las tablas externas.

Page 10: Table Compression Enhancements

* Beneficios de la compresión de tabla OLTP

La relación de compresión logrado en un entorno determinado depende de la naturaleza de los datos que se están comprimiendo; específicamente la cardinalidad de los datos. En general, los clientes pueden esperar reducir su consumo de espacio de almacenamiento en un factor de 2x a 4x utilizando la función de compresión de tabla OLTP. Es decir, la cantidad de espacio consumido por los datos ressed uncomp será de dos a cuatro veces mayor que el de la ATA comprimido.

Los beneficios de la compresión de tabla OLTP van más allá de sólo el ahorro de almacenamiento en disco. Una ventaja significativa es la capacidad de Oracle para leer bloques comprimidos directamente sin tener que descomprimir primero el bloque. Por lo tanto, no hay medición de degradación del rendimiento capaz de acceder a los datos comprimidos. De hecho, en muchos casos, el rendimiento puede mejorar debido a la reducción de E / S desde Oracle tendrá que acceder a un menor número de bloques. Además, la caché del búfer será más eficiente al almacenar más datos, sin tener que agregar memoria.

Page 11: Table Compression Enhancements

* Una sobrecarga mínima de rendimiento

Como se indicó anteriormente, la compresión de tabla OLTP no tiene impacto negativo en las operaciones de lectura. Hay trabajo adicional realizado durante la escritura de datos, por lo que es imposible eliminar la sobrecarga de rendimiento para operaciones de escritura. Sin embargo, Oracle ha puesto en un significativo montaje de la obra para minimizar esta sobrecarga de compresión de tabla OLTP. Oracle comprime bloques en modo de lotes en lugar de la compresión de datos cada vez que una operación de escritura tiene lugar. Un bloque recién inicializado permanece sin comprimir hasta que los datos en el bloque alcanza un umbral controlado internamente. Cuando una transacción hace que los datos en el bloque lleguen a este umbral, todos los contenidos del bloque se comprimen. Posteriormente, a medida que más datos se añade al bloque y el umbral se alcanza de nuevo, el bloque entero se vuelve a comprimir para lograr el más alto nivel de compresión. Este proceso se repite hasta que Oracle determina que el bloque ya no puede beneficiarse de una mayor compresión. Sólo las transacciones que provocan la compresión del bloque experimentarán la ligera sobrecarga de compresión. Por lo tanto, la mayoría de las transacciones OLTP en bloques comprimido tendrá el mismo rendimiento exacto como lo harían con los bloques sin comprimir.

Page 12: Table Compression Enhancements