Skip to content
Back to skills

Data Warehouse Optimizer

ASecurity

Snowflake, BigQuery, clustering, partitioning, and materialized views for warehouse performance. Activate on: Snowflake, BigQuery, Redshift, query optimization, clustering, partitioning, materialized view, warehouse cost, query profile. NOT for: dbt model structure (use dbt-analytics-engineer), data modeling (use dimensional-modeler).

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
datapythongobashsqlapiperformance

Works with

  • api

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add curiositech/windags-skills --skill data-warehouse-optimizer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Warehouse Optimizer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Data Warehouse Optimizer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/curiositech-data-warehouse-optimizer/badge)](https://www.skillsdirectory.com/skills/curiositech-data-warehouse-optimizer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
license: Apache-2.0
name: data-warehouse-optimizer
description: "Snowflake, BigQuery, clustering, partitioning, and materialized views for warehouse performance. Activate on: Snowflake, BigQuery, Redshift, query optimization, clustering, partitioning, materialized view, warehouse cost, query profile. NOT for: dbt model structure (use dbt-analytics-engineer), data modeling (use dimensional-modeler)."
allowed-tools: Read,Write,Edit,Bash(npm:*,npx:*,python:*,snowsql:*,bq:*)
category: Data & Analytics
tags:
  - snowflake
  - bigquery
  - query-optimization
  - partitioning
  - warehouse
pairs-with:
  - skill: dbt-analytics-engineer
    reason: dbt models benefit from warehouse-level optimization
  - skill: data-cost-optimizer
    reason: Warehouse optimization directly reduces costs
  - skill: dimensional-modeler
    reason: Physical model design affects query performance
---

# Data Warehouse Optimizer

Optimize query performance and resource utilization in Snowflake, BigQuery, and Redshift through clustering, partitioning, materialized views, and query profiling.

## Activation Triggers

**Activate on:** "Snowflake optimization", "BigQuery performance", "Redshift tuning", "query optimization", "clustering key", "partitioning", "materialized view", "warehouse sizing", "query profile", "slow query"

**NOT for:** dbt project structure → `dbt-analytics-engineer` | Dimensional modeling → `dimensional-modeler` | Cost optimization beyond warehouse → `data-cost-optimizer`

## Quick Start

1. **Profile slow queries** — use QUERY_PROFILE (Snowflake), INFORMATION_SCHEMA.JOBS (BigQuery), STL tables (Redshift)
2. **Partition large tables** — by date column (most common), reducing scan size by 10-100x
3. **Add clustering** — co-locate frequently filtered/joined columns within partitions
4. **Materialize expensive aggregations** — materialized views for dashboards, pre-aggregated metrics
5. **Right-size warehouses** — auto-suspend idle, auto-scale for concurrency, match size to workload

## Core Capabilities

| Domain | Technologies |
|--------|-------------|
| **Snowflake** | Micro-partitions, clustering keys, search optimization, warehouses |
| **BigQuery** | Partitioning, clustering, BI Engine, materialized views |
| **Redshift** | Sort keys, dist keys, VACUUM, WLM, Redshift Serverless |
| **General** | Query plans, statistics, result caching, spill-to-disk analysis |
| **Monitoring** | Snowflake Account Usage, BigQuery INFORMATION_SCHEMA, CloudWatch |

## Architecture Patterns

### Snowflake Clustering and Search Optimization

```sql
-- Cluster a large fact table by commonly filtered columns
ALTER TABLE fct_events
  CLUSTER BY (event_date, customer_id);

-- Verify clustering depth (lower = better, target < 2.0)
SELECT SYSTEM$CLUSTERING_INFORMATION('fct_events', '(event_date, customer_id)');

-- Search optimization for point lookups on high-cardinality columns
ALTER TABLE fct_events ADD SEARCH OPTIMIZATION
  ON EQUALITY(order_id), EQUALITY(email);

-- Result: range scans use clustering, point lookups use search optimization
```

### BigQuery Partitioning + Clustering

```sql
-- Partition by date, cluster by high-cardinality filter columns
CREATE TABLE `project.dataset.fct_events`
PARTITION BY DATE(event_timestamp)
CLUSTER BY customer_id, event_type
AS
SELECT * FROM `project.dataset.raw_events`;

-- Query benefits: partition pruning + cluster pruning
-- Only scans partitions matching WHERE clause
SELECT customer_id, COUNT(*)
FROM `project.dataset.fct_events`
WHERE event_timestamp BETWEEN '2026-01-01' AND '2026-01-31'
  AND event_type = 'purchase'
GROUP BY customer_id;

-- Check bytes scanned reduction
-- Target: 90%+ reduction vs unpartitioned table
```

### Warehouse Sizing Strategy (Snowflake)

```
Workload Type          Recommended Size     Auto-Suspend    Concurrency
─────────────          ────────────────     ────────────    ───────────
Dashboard queries      X-Small/Small        60s             Auto-scale (max 3)
Analyst ad-hoc         Medium               300s            1 cluster
dbt daily build        Large                Immediate       1 cluster
Data science / ML      X-Large+             Immediate       1 cluster

Key: separate workloads into different warehouses
     to prevent resource contention and enable per-workload billing
```

## Anti-Patterns

1. **Scanning full tables** — always partition by date; a full scan of a 1TB table costs 10-50x more than a pruned scan
2. **Too many clustering keys** — 2-4 keys maximum; more keys reduce clustering effectiveness
3. **Oversized warehouses** — bigger does not always mean faster; profile first, right-size second
4. **Ignoring spill-to-disk** — queries spilling to remote storage are 10-100x slower; increase warehouse size or optimize query
5. **Materializing volatile data** — materialized views on rapidly changing tables cause constant refresh overhead

## Quality Checklist

- [ ] Large tables (>1B rows) partitioned by date column
- [ ] Clustering keys set on top 2-3 filter/join columns
- [ ] Query profile reviewed for top 10 slowest queries monthly
- [ ] Spill-to-disk queries identified and optimized (increase size or rewrite)
- [ ] Materialized views created for expensive dashboard aggregations
- [ ] Warehouses auto-suspended when idle (60-300s)
- [ ] Workloads separated into dedicated warehouses
- [ ] Result cache hit rate >50% for repeated analytical queries
- [ ] Bytes scanned tracked and reduced quarter-over-quarter
- [ ] Unused tables/views identified and dropped quarterly

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…