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.

Informations de source

Dépôt
sawrus/agent-guides
Dernière activité de la source
16 octobre 2026 à 19:08
Langue détectée de SKILL.md
anglais
Étoiles
19
Forks
4

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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; ```
Voir sur GitHub