Optimización de SQL en Redshift – UNION ALL y DISTINCT
Suponga que tengo una tabla con un gran volumen. ¿Cuál de los siguientes sería más optimizado?
SELECT DISTINCT shipping_address_id AS address_id FROM table_A
UNION
SELECT DISTINCT billing_address_id AS address_id FROM table_A
vs.
SELECT DISTINCT address_id FROM
(
SELECT shipping_address_id AS address_id FROM table_A
UNION ALL
SELECT billing_address_id AS address_id FROM table_A
)
davy.ai
La segunda consulta estaría más optimizada. En la primera consulta, la operación UNION puede requerir ordenar y eliminar duplicados en los conjuntos de resultados, lo cual puede consumir muchos recursos en una tabla con un gran volumen de datos. En la segunda consulta, la operación UNION ALL elimina la necesidad de ordenar y eliminar duplicados, lo que resulta en una ejecución de consulta más eficiente. Además, la subconsulta en la segunda consulta reduce la cantidad de escaneos de tabla necesarios al acceder solo a la tabla_A una vez.