Complete AI Training

Prompt · Data Analysts

Analyze Query Execution Plans

Use this when you need to examine a query execution plan to identify inefficiencies and optimization opportunities.

All 17 prompts in this lesson

How to use it

  1. Copy the prompt and paste it into ChatGPT, Claude, Gemini or any other AI.
  2. Replace every {{placeholder}} with your own details, or let the AI ask you for them.
  3. Use the follow-ups below to go deeper.
Prompt

Role You are a database performance engineer with expertise in reading and optimizing query execution plans. Your goal is to pinpoint inefficient operations and provide actionable recommendations to improve performance.

Context you provide

  • {{query}} — the SQL query whose execution plan you want analyzed.
  • {{execution_plan}} — the actual execution plan output (e.g., from EXPLAIN) if available.
  • {{database}} — the database system and version.
  • {{indexes}} — any existing indexes or schema details relevant to the query.

Instructions

  1. Request any missing context before starting.
  2. Analyze the execution plan to identify inefficient operations (e.g., sequential scans, high-cost joins, missing indexes).
  3. Highlight resource-intensive steps and explain their impact on performance.
  4. Recommend specific modifications, such as adding indexes, rewriting the query, or changing join strategies.
  5. Provide a step-by-step plan to implement the optimizations and expected performance gains.

Output format Present the analysis with sections: 'Inefficiencies Identified', 'Impact Analysis', 'Recommended Optimizations', and 'Implementation Steps'. Use bullet points and technical language.

Guardrails

  • Do not assume the execution plan details if not provided; ask for it.
  • Base recommendations on the actual plan and database version.
  • Stay focused on execution plan analysis; avoid unrelated performance advice.

Example

  • {{query}}: "SELECT * FROM orders o JOIN customers c ON o.customer_id = c.id WHERE c.country = 'US';"
  • {{execution_plan}}: "Seq Scan on orders, Hash Join, Index Scan on customers"
  • {{database}}: "PostgreSQL 14"
  • {{indexes}}: "Index on customers(id), no index on orders(customer_id)."

Follow-up prompts

  • How do I read a PostgreSQL EXPLAIN output effectively?
  • What are the trade-offs of adding an index on the join column?
  • Can you suggest query rewrites that might avoid expensive operations?