¿Pero por qué aún apagando el caché la segunda consulta es muchÃsimo más rápida? Me darÃa la impresión de que el siguiese haciendo uso del caché
Primeros pasos en la arquitectura no transaccional
Objetivos y presentación del proyecto
Aprende qué es un Data Warehouse
Bases de datos columnares y arquitectura orientada a optimización de consultas
¿Cómo funciona AWS Redshift?
Configura tu entorno de trabajo para Redshift
Creando nuestro entorno de trabajo en AWS
Configura tu primer cluster
Consumiendo Redshift: empieza la magia
Sentencias SQL en Redshift
Cómo diseñar tu base de datos para mejorar su desempeño
¿Qué es la compresión en Redshift?
Algoritmos de compresión con Redshift
Aplicando algoritmos de compresión
Análisis de desempeño con diferentes tipos de compresión
Estilos de distribución con Redshift
Evaluando los estilos de distribución
Llaves de ordenamiento para optimizar nuestras consultas
Aplicando ordenamiento de columnas
Evaluando algoritmos de ordenamiento
Buenas prácticas para diseñar tablas en Redshift
Tipos de datos en AWS Redshift
Reto: mejora el desempeño de tu base de datos
Manipular enormes cantidades de datos
OlvÃdate de los insert, el copy llego para quedarse
Cargando archivos tipo JSON
El comando copy a fondo
Manifiestos y uso de COMPUPDATE para carga con compresión automática
Métodos de carga alternativos al comando copy
¿Cómo ejecutar sentencias UPDATE y DELETE?
¿Cómo mantener el desempeño de tu base de datos?
EstadÃsticas y limpieza de las tablas
Buenas prácticas para diseñar y ejecutar consultas en tu base de datos
Agrupamiento, ordenamiento y subqueries
¿Qué es y cómo interpretar un explain plan?
Análisis de comportamiento y descarga de datos con Redshift
¿Cómo descargar datos eficientemente con UNLOAD?
Otras tablas útiles de Redshift para entender el comportamiento de nuestros datos
Conclusiones
Próximos pasos con AWS Redshift
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 7
Preguntas 0
¿Pero por qué aún apagando el caché la segunda consulta es muchÃsimo más rápida? Me darÃa la impresión de que el siguiese haciendo uso del caché
set enable_result_cache_for_session to off;
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_simple
WHERE c_custkey < 100000; --349ms ,237ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_compuesto
WHERE c_custkey < 100000; --125ms ,146ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_intercalado
WHERE c_custkey < 100000; --397 ms ,179ms
-------------------------------
set enable_result_cache_for_session to off;
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_simple
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE'; --1.468ms, 1.369 ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_compuesto
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE';--2.586s, 770ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_intercalado
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE';--303ms, 104 ms
-----------
set enable_result_cache_for_session to off;
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_simple
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--1.415s, 115ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_compuesto
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--806 ms, 326ms
SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_intercalado
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--236 ms, 112ms
La sentencia ENABLE_RESULT_CACHE_FOR_SESSION opera de la siguiente forma:
Si su valor es ON busca en cache algún resultado previamente calculado para el query ejecutado. Si su valor es OFF ejecuta el query directamente y obtiene un resultado nuevo.
Apagar el cache: set enable_result_cache_for_session to off
Hice unas consultas para los registros con ID mayor a 500,000 de mayo de 1996, sector automóvil y con región de Medio Oriente y mientras más filtros se agregan más es la diferencia de las sort key tipo intercalado en el rendimiento
set enable_result_cache_for_session to off;
select sum(lo_revenue)
from cust_sales_simple
WHERE c_custkey > 500000
AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
AND c_mktsegment = 'AUTOMOBILE'
AND c_region = 'MIDDLE EAST' ;
-- tiempo con cache desactivado 1.345 s
select sum(lo_revenue)
from cust_sales_compound
WHERE c_custkey > 500000
AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
AND c_mktsegment = 'AUTOMOBILE'
AND c_region = 'MIDDLE EAST' ;
-- tiempo con cache desactivado 710 ms
select sum(lo_revenue)
from cust_sales_interleaved
WHERE c_custkey > 500000
AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
AND c_mktsegment = 'AUTOMOBILE'
AND c_region = 'MIDDLE EAST' ;
-- tiempo con cache desactivado 277 ms
muy clara esta clase
Mis tiempos en las queries:
set enable_result_cache_for_session to off;
select max(lo_revenue), min(lo_revenue)
from cust_sales_simple
where c_custkey < 100000;--420ms/ 232ms
select max(lo_revenue), min(lo_revenue)
from cust_sales_compuesto
where c_custkey < 100000;--178ms/ 153ms
select max(lo_revenue), min(lo_revenue)
from cust_sales_intercalable
where c_custkey < 100000;--326/ 234ms
-------------------------------------------------
select max(lo_revenue), min(lo_revenue)
from cust_sales_simple
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--8.847s/ 4.399s
select max(lo_revenue), min(lo_revenue)
from cust_sales_compuesto
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--7.931s/ 3.459s
select max(lo_revenue), min(lo_revenue)
from cust_sales_intercalable
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--4.761/539ms
---------------------------------------------------
set enable_result_cache_for_session to off;
select max(lo_revenue), min(lo_revenue)
from cust_sales_simple
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--1.254s/ 1.103s
select max(lo_revenue), min(lo_revenue)
from cust_sales_compuesto
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--9.191s/ 4.590s
select max(lo_revenue), min(lo_revenue)
from cust_sales_intercalable
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--5.221/ 404ms```
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?