finding-expensive-queries

Finding Expensive Queries

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "finding-expensive-queries" with this command: npx skills add altimateai/data-engineering-skills/altimateai-data-engineering-skills-finding-expensive-queries

Finding Expensive Queries

Query history → Rank by metric → Identify patterns → Recommend optimizations

Workflow

  1. Ask What to Optimize For

Before querying, clarify:

  • Time period? (last day, week, month)

  • Metric? (execution time, bytes scanned, cost, spillage)

  • Warehouse? (specific or all)

  • User? (specific or all)

  1. Find Expensive Queries by Cost

Use QUERY_ATTRIBUTION_HISTORY for credit/cost analysis:

SELECT query_id, warehouse_name, user_name, credits_attributed_compute, start_time, end_time, query_tag FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY WHERE start_time >= DATEADD('days', -7, CURRENT_TIMESTAMP()) ORDER BY credits_attributed_compute DESC LIMIT 20;

  1. Get Performance Stats for Specific Queries

Use QUERY_HISTORY for detailed performance metrics (run separately, not joined):

SELECT query_id, query_text, total_elapsed_time/1000 as seconds, bytes_scanned/1e9 as gb_scanned, bytes_spilled_to_local_storage/1e9 as gb_spilled_local, bytes_spilled_to_remote_storage/1e9 as gb_spilled_remote, partitions_scanned, partitions_total FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE query_id IN ('<query_id_1>', '<query_id_2>', ...) AND start_time >= DATEADD('days', -7, CURRENT_TIMESTAMP());

  1. Identify Patterns

Look for:

  • High credits_attributed_compute queries

  • Same query_hash repeated (caching opportunity)

  • partitions_scanned = partitions_total (no pruning)

  • High gb_spilled (memory pressure)

  1. Return Results

Provide:

  • Ranked list of expensive queries with key metrics

  • Common patterns identified

  • Top 3-5 optimization recommendations

  • Specific queries to investigate further

Common Filters

-- Time range (required) WHERE start_time >= DATEADD('days', -7, CURRENT_TIMESTAMP())

-- By warehouse AND warehouse_name = 'ANALYTICS_WH'

-- By user AND user_name = 'ETL_USER'

-- Only queries over cost threshold AND credits_attributed_compute > 0.01

-- Only queries over time threshold AND total_elapsed_time > 60000 -- over 1 minute

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

documenting-dbt-models

No summary provided by upstream source.

Repository SourceNeeds Review
General

creating-dbt-models

No summary provided by upstream source.

Repository SourceNeeds Review
General

optimizing-query-text

No summary provided by upstream source.

Repository SourceNeeds Review