sqladvanced

Read EXPLAIN ANALYZE Output

Use EXPLAIN ANALYZE to understand and optimize query execution plans.

sql
-- Basic EXPLAIN ANALYZE
EXPLAIN ANALYZE
SELECT o.order_id, c.name, o.total
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE o.order_date >= '2025-01-01'
ORDER BY o.total DESC
LIMIT 100;

-- EXPLAIN with all options (PostgreSQL)
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 75000;

-- Check if index is used
EXPLAIN ANALYZE
SELECT * FROM orders
WHERE customer_id = 42;
-- Look for: Index Scan vs Seq Scan
-- Look for: actual time vs estimated rows

Use Cases

  • Query performance tuning
  • Index effectiveness checks
  • Database optimization

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.