ANALYZE COMPRESSION - Amazon Redshift

ANALYZE COMPRESSION

Realiza un análisis de compresión y produce un informe con la codificación de compresión sugerida para las tablas analizadas. Para cada columna, el informe incluye un cálculo de la reducción potencial de espacio en disco en comparación con la codificación RAW.

Sintaxis

ANALYZE COMPRESSION [ [ table_name ] [ ( column_name [, ...] ) ] ] [COMPROWS numrows]

Parámetros

table_name

Puede analizar la compresión para tablas específicas, incluidas tablas temporales. Puede completar la tabla con el nombre de su esquema. Si lo desea, puede especificar un table_name (nombre_de_tabla) para analizar una única tabla. Si no especifica table_name (nombre_de_tabla), se analizarán todas las tablas de la base de datos que está conectada actualmente. No puede especificar varios valores table_name (nombre_de_tabla) con una única instrucción ANALYZE COMPRESSION.

column_name

Si especifica un valor table_name (nombre_de_tabla), también puede especificar una o varias columnas de la tabla (como una lista de valores separados por columnas entre paréntesis).

COMPROWS

Cantidad de filas que se usarán como el tamaño de muestra para el análisis de compresión. El análisis se ejecuta sobre las filas de cada sector de datos. Por ejemplo, si especifica COMPROWS 1000000 (1 000 000) y el sistema contiene 4 sectores totales, no se leen y analizan más de 250 000 filas por sector. Si no especifica COMPROWS, el tamaño de muestra se establecerá de manera predeterminada en 100 000 por sector. Los valores de COMPROWS inferiores al valor predeterminado de 100 000 filas por sector se actualizan automáticamente al valor predeterminado. No obstante, el análisis de compresión no produce recomendaciones si la cantidad de datos de la tabla no alcanza para producir una muestra significativa. Si el número de COMPROWS es superior a la cantidad de filas de la tabla, el comando ANALYZE COMPRESSION avanza y ejecuta el análisis de compresión contra todas las filas disponibles

numrows

Cantidad de filas que se usarán como el tamaño de muestra para el análisis de compresión. El rango aceptado para numrows (número_de_filas) es un número comprendido entre 1000 y 1000000000 (1 000 000 000).

Notas de uso

ANALYZE COMPRESSION adquiere un bloqueo de tabla exclusivo, que previene lecturas y escrituras concurrentes en la tabla. Ejecute solo el comando ANALYZE COMPRESSION cuando la tabla esté inactiva.

Ejecute ANALYZE COMPRESSION para obtener recomendaciones para esquemas de codificación de columna, según una muestra del contenido de la tabla. ANALYZE COMPRESSION es una herramienta de consultoría y no modifica las codificaciones de columna de la tabla. Puede aplicar la codificación sugerida creando de nuevo la tabla o generando una nueva tabla con el mismo esquema. El espacio en disco se puede reducir significativamente creando de nuevo una tabla sin comprimir con los esquemas de codificación adecuados. Este enfoque ahorra espacio en disco y mejora el rendimiento de las consultas en las cargas de trabajo relacionadas con operaciones de E/S.

ANALYZE COMPRESSION omite la verdadera fase de análisis y devuelve directamente el tipo de codificación original de cualquier columna que se haya designado como SORTKEY. Esto se debe a que los análisis restringidos por rango pueden funcionar mal cuando las columnas SORTKEY están mucho más comprimidas que otras columnas.

Ejemplos

En el siguiente ejemplo, se muestran la codificación y la reducción porcentual estimada para las columnas de la tabla LISTING únicamente:

analyze compression listing; Table | Column | Encoding | Est_reduction_pct ---------+----------------+----------+------------------- listing | listid | az64 | 40.96 listing | sellerid | az64 | 46.92 listing | eventid | az64 | 53.37 listing | dateid | raw | 0.00 listing | numtickets | az64 | 65.66 listing | priceperticket | az64 | 72.94 listing | totalprice | az64 | 68.05 listing | listtime | az64 | 49.74

En el siguiente ejemplo, se analizan las columnas QTYSOLD, COMMISSION y SALETIME de la tabla SALES.

analyze compression sales(qtysold, commission, saletime); Table | Column | Encoding | Est_reduction_pct -------+------------+----------+------------------- sales | salesid | N/A | 0.00 sales | listid | N/A | 0.00 sales | sellerid | N/A | 0.00 sales | buyerid | N/A | 0.00 sales | eventid | N/A | 0.00 sales | dateid | N/A | 0.00 sales | qtysold | az64 | 83.06 sales | pricepaid | N/A | 0.00 sales | commission | az64 | 71.85 sales | saletime | az64 | 49.63