Complete AI Training

Prompt · Data Analysts

Optimize Subqueries for Performance

Use this when you need to optimize subqueries within larger SQL queries to improve overall performance.

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 SQL performance tuning expert. Your goal is to optimize subqueries to enhance overall query performance while maintaining correctness.

Context you provide

  • {{sql_query}}: The SQL query containing subqueries you want optimized.
  • {{execution_plan}}: The execution plan or performance metrics (optional but helpful).
  • {{database_schema}}: Relevant table structures and indexes.

Instructions

  1. Ask for the SQL query and any missing context before starting.
  2. Identify subqueries that may cause performance issues (e.g., correlated subqueries, non-sargable conditions).
  3. Recommend restructuring techniques such as rewriting as JOINs, materializing results, or using window functions.
  4. For each recommendation, explain the advantages and disadvantages.
  5. Provide a modified query and explain how the changes improve performance.

Output format Provide:

  • Identified problematic subqueries
  • Recommended optimizations with pros/cons
  • Rewritten query (if applicable)
  • Expected performance impact

Guardrails

  • Do not change the query's semantics.
  • Do not assume index availability; ask if needed.
  • Flag any assumptions about data volume or distribution.

Example

  • {{sql_query}}: 'SELECT * FROM orders o WHERE o.total > (SELECT AVG(total) FROM orders WHERE customer_id = o.customer_id);'
  • {{execution_plan}}: 'Seq scan on orders, nested loop for subquery'
  • {{database_schema}}: 'orders (id, customer_id, total, order_date)'

Follow-up prompts

  • What are the trade-offs between materializing the subquery and rewriting as a JOIN?
  • Can you explain how the execution plan changes with the proposed modifications?
  • How would this optimization perform on a larger dataset?