Workload

Performance tuning & optimization for Teradata → Snowflake

Teradata tuning habits (spool management, index/PI assumptions, and optimizer-specific shapes) don’t translate. We tune Snowflake layout, query shapes, and warehouse posture so pruning works, credits stay stable, and refresh SLAs hold under real concurrency.

At a glance
Input
Teradata Performance tuning & optimization logic
Output
Snowflake equivalent (validated)
Common pitfalls
  • Carrying over PI/index thinking: expecting physical design to rescue query shape; Snowflake needs pruning-first predicates and evidence-driven clustering.
  • Clustering by folklore: clustering keys chosen without evidence from predicates/join keys.
  • Full-target MERGE: missing apply boundaries causes large scans and credit spikes.
Context

Why this breaks

Teradata performance tuning is often encoded in physical design and platform behavior: PI/index assumptions, spool management, and optimizer-driven query plans. After migration, teams keep Teradata-era query shapes and expect Snowflake to behave similarly—then costs spike and SLAs slip because Snowflake’s model is different. In Snowflake, credit burn is driven by warehouse usage and scan footprint, and MERGE/apply workloads can become full-target scans without bounded scope.

Common post-cutover symptoms:

  • Queries scan too much because predicates don’t prune effectively
  • Join-heavy reporting reshuffles large datasets; BI latency increases
  • MERGE/apply jobs scan full targets; credit burn becomes unpredictable
  • BI refresh contends with batch loads without warehouse isolation
  • Improvements regress because there are no baselines or gates
Approach

How conversion works

  1. Baseline top workloads: identify the most expensive and most business-critical queries/pipelines (dashboards, marts, incremental loads).
  2. Diagnose root causes: pruning effectiveness, join patterns, large scans, and MERGE scope.
  3. Tune data layout: evidence-driven clustering where beneficial based on access paths (not folklore).
  4. Rewrite for bounded applies: staged apply, bounded MERGE scopes, and pruning-friendly predicates.
  5. Warehouse posture: isolate batch vs BI warehouses, tune concurrency and sizing, and implement credit guardrails.
  6. Regression gates: store baselines and enforce thresholds so improvements persist.

Supported constructs

Representative tuning levers we apply for Teradata → Snowflake workloads.

SourceTargetNotes
PI/index-era performance assumptionsPruning-first predicates + evidence-driven clusteringReplace physical tuning with scan-footprint reduction.
Spool-sensitive query shapesBounded scans + staged materializationsReduce large intermediate explosions and stabilize runtime.
MERGE/upsert pipelinesBounded MERGE scopes + staged applyAvoid full-target scans and unpredictable credit burn.
Join-heavy BI workloadsPruning-aware rewrites + pre-aggregation/materializationsStabilize dashboards and reduce repeated large scans.
Mixed BI + batch contentionWarehouse isolation + concurrency posturePrevent batch workloads from impacting BI latency.
Ad-hoc cost spikesGovernance guardrails + regression gatesPrevent credit blowups from unmanaged changes.

How workload changes

TopicTeradataSnowflake
Primary cost driverPlatform capacity + spool behaviorWarehouse credits + scan footprint
Data layout impactPI/indexes and optimizer behaviorClustering is optional and evidence-driven
Incremental applyMERGE logic often coupled to Teradata semanticsBounded MERGE/apply windows + staged apply
Concurrency planningWorkload management queuesWarehouse isolation + concurrency policies
Primary cost driver: Pruning and bounded scans dominate credit burn.
Data layout impact: Use clustering only when predicates/join keys justify it.
Incremental apply: Correctness and cost depend on apply window design.
Concurrency planning: Peak BI refresh needs explicit warehouse posture.

Examples

Illustrative Snowflake optimization patterns after Teradata migration: enforce pruning-friendly filters, bound MERGEs, isolate warehouses, and store baselines for regression gates.

-- Pruning-first query shape (avoid wrapping filter columns)
SELECT
  region,
  SUM(revenue) AS rev
FROM MART.FACT_ORDERS
WHERE EVENT_DATE BETWEEN DATE '2025-01-01' AND DATE '2025-01-31'
GROUP BY 1;
Avoid

Common pitfalls

  • Carrying over PI/index thinking: expecting physical design to rescue query shape; Snowflake needs pruning-first predicates and evidence-driven clustering.
  • Clustering by folklore: clustering keys chosen without evidence from predicates/join keys.
  • Full-target MERGE: missing apply boundaries causes large scans and credit spikes.
  • No warehouse isolation: BI and batch share warehouses; tail latency and spend spikes follow.
  • Over-materialization: too many intermediates without controlling refresh cost.
  • No regression gates: performance improves once, then regresses silently.
Proof

Validation approach

  • Baseline capture: runtime, scan footprint, and credits for top queries/pipelines.
  • Pruning checks: confirm pruning-friendly predicates and reduced scan footprint on representative parameters.
  • Before/after evidence: demonstrate improvements in runtime and credit burn; document tradeoffs.
  • Correctness guardrails: golden queries and KPI aggregates ensure tuning doesn’t change semantics.
  • Regression thresholds: define alerts (e.g., +30% credits or +30% runtime) and enforce via CI or scheduled checks.
  • Operational monitors: dashboards for warehouse utilization, credit burn, failures, and refresh SLA adherence.
Execution

Migration steps

A sequence that improves performance while protecting semantics.
  1. 01

    Identify top cost and SLA drivers

    Rank queries and pipelines by credits, runtime, and business criticality (dashboards, batch windows). Select a tuning backlog with clear owners.

  2. 02

    Create baselines and targets

    Capture current Snowflake metrics (runtime, credit burn, scan footprint) and define improvement targets. Freeze golden outputs so correctness doesn’t regress.

  3. 03

    Tune layout and apply posture

    Apply evidence-driven clustering where beneficial and redesign apply windows so MERGEs are bounded and pruning remains effective.

  4. 04

    Rewrite for pruning and reuse

    Apply pruning-aware rewrites, reduce repeated large scans with materializations where needed, and scope MERGEs to affected windows.

  5. 05

    Warehouse posture and governance

    Isolate batch and BI warehouses, tune concurrency, and implement guardrails to prevent credit blowups from new queries.

  6. 06

    Add regression gates

    Codify performance thresholds and alerting so future changes don’t reintroduce high credit burn or missed SLAs. Monitor post-cutover metrics continuously.

Workload Assessment
Replace Teradata tuning with Snowflake-native pruning

We identify your highest-cost migrated workloads, tune pruning and apply windows, and deliver before/after evidence with regression thresholds—so performance improves and stays stable.

Optimization Program
Prevent credit blowups with regression gates

Get an optimization backlog, bounded apply patterns, and performance gates (credit/runtime thresholds) so future releases don’t reintroduce slow dashboards or high credit burn.

FAQ

Frequently asked questions

Why did credits increase after moving from Teradata to Snowflake?+
Most often because Teradata-era query shapes and MERGE conventions translate into larger scans in Snowflake. We tune pruning-friendly predicates, bound MERGE scopes, and isolate warehouses to stabilize credit burn.
Do we need clustering everywhere?+
No. Clustering is most useful for large tables with stable, selective predicates. We use evidence from query patterns and scan behavior before recommending clustering keys.
Can you optimize MERGE/apply pipelines too?+
Yes. We scope MERGEs to affected windows, design staging boundaries, and validate performance with credit/runtime baselines to prevent unpredictable scans.
How do you prevent BI refresh from impacting batch pipelines?+
We isolate warehouses (or use workload-aware sizing and concurrency limits) so BI and batch don’t contend. Monitoring and regression gates catch credit spikes and SLA regressions early.