COF-C03 Study LabPráctica independiente de Snowflake
Performance Optimization, Querying, and Transformation

SQL aplicado a optimizacion

Reduce datos, evita trabajo innecesario y escribe SQL que permita a Snowflake optimizar sin convertir consejos generales en dogmas.

sql filter join union all merge top-k query optimization
Cobertura COF-C03 4.9

Aplicacion de SQL para optimizar

Proyeccion, filtros, joins, casts, UNION ALL, MERGE, determinismo y Top-K pruning.

Conceptos que debes poder reconocer y distinguir:

  • Projection pruning
  • Predicate filtering
  • Join strategy
  • Casts
  • UNION ALL
  • MERGE
  • Determinismo y Top-K pruning

Usa los enlaces oficiales de Snowflake de esta unidad para ampliar cada concepto y contrastar su comportamiento.

La optimizacion SQL empieza por devolver y procesar solo lo necesario. Proyectar columnas, aplicar filtros selectivos y verificar cardinalidad de joins suele dar mas resultado que añadir recursos sin cambiar el plan.

Patron y decision

Patron Mejor decision Razon
No hay duplicados que eliminar UNION ALL Evita el coste de distinct implicito de UNION
Join produce muchas mas filas de lo esperado Revisar condicion y granularidad Un exploding join se corrige en la logica, no con mas clusters
Se comparan tipos incompatibles Casts explicitos y coherentes Evita conversiones implicitas y filtros menos eficientes
Solo interesan K resultados ordenados ORDER BY + LIMIT elegibles Puede activar Top-K pruning en patrones compatibles
Carga incremental con inserciones y cambios MERGE bien condicionado Evita varios pasos y controla la correspondencia origen-destino

Checklist de SQL

  • Evita SELECT * en consultas de produccion si no necesitas todas las columnas.
  • Filtra antes de joins cuando sea semantica y logicamente correcto, y comprueba que los filtros sean aplicables y selectivos.
  • No asumas que una CTE siempre materializa o siempre se reutiliza: revisa el perfil del plan para el caso real.
  • Usa DISTINCT solo cuando el requisito requiere eliminar duplicados; es una operacion que puede ser costosa.
  • Top-K pruning necesita condiciones especificas, como ORDER BY y LIMIT; no es una propiedad automatica de cualquier LIMIT.
  • Resultados reutilizables dependen de condiciones de validez; no construyas un benchmark alrededor de una cache no controlada.