Skip to main content

sql-optimization

Applies SQL optimization patterns, window functions, and Snowflake-specific tuning; use when writing complex queries, optimizing slow queries, designing indexes, or reviewing query performance.

Datos de origen

Repositorio
sawrus/agent-guides
Última actividad en el origen
16 de octubre de 2026 a las 19:08
Idioma detectado de SKILL.md
inglés
Estrellas
19
Forks
4

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
sql-optimization
description
Applies SQL optimization patterns, window functions, and Snowflake-specific tuning; use when writing complex queries, optimizing slow queries, designing indexes, or reviewing query performance.
# Skill: SQL Optimization ## When to load When writing complex queries, optimizing slow queries, designing indexes, or reviewing query performance. ## Core Patterns ```sql -- ✅ Column projection — never SELECT * SELECT user_id, created_at, total_amount FROM orders WHERE created_at >= '2026-01-01'; -- ✅ Partition pruning — filter on partition column first SELECT user_id, total_amount FROM orders WHERE order_date = '2026-01-15' -- partition filter first AND status = 'completed'; -- ❌ Function on indexed column defeats index WHERE DATE(created_at) = '2026-01-15' -- ✅ Range comparison preserves index WHERE created_at >= '2026-01-15' AND created_at < '2026-01-16' ``` ## Window Functions (prefer over self-joins) ```sql SELECT user_id, order_date, amount, SUM(amount) OVER ( PARTITION BY user_id ORDER BY order_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS cumulative_amount, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS recency_rank FROM orders; ``` ## Snowflake-Specific ```sql -- Cluster keys on large tables (> 1 TB) ALTER TABLE orders CLUSTER BY (order_date, status); -- COPY INTO for bulk loads — never row-by-row INSERT COPY INTO orders FROM @my_stage/orders/ FILE_FORMAT = (TYPE = PARQUET) MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE; ```
Ver en GitHub