explain.depesz.com

PostgreSQL's explain analyze made readable

Result: naBb

Settings
# exclusive inclusive rows x rows loops node
1. 23.431 292.414 ↑ 1.0 10,000 1

Nested Loop Left Join (cost=542.86..132,204.32 rows=10,001 width=261) (actual time=19.507..292.414 rows=10,000 loops=1)

  • Output: "JobPayload".upc, product.created, product.provider, y.payload
  • Inner Unique: true
2. 28.786 208.983 ↑ 1.0 10,000 1

Nested Loop Left Join (cost=542.43..47,670.87 rows=10,001 width=39) (actual time=19.488..208.983 rows=10,000 loops=1)

  • Output: "JobPayload".upc, product.created, product.provider, product.id
3. 20.798 30.197 ↑ 1.0 10,000 1

HashAggregate (cost=541.87..641.88 rows=10,001 width=12) (actual time=19.444..30.197 rows=10,000 loops=1)

  • Output: "JobPayload".upc
  • Group Key: "JobPayload".upc
4. 9.399 9.399 ↑ 1.0 10,388 1

Seq Scan on public."JobPayload" (cost=0.00..515.90 rows=10,388 width=12) (actual time=0.113..9.399 rows=10,388 loops=1)

  • Output: "JobPayload".upc
  • Filter: ("JobPayload".job_id = 66)
  • Rows Removed by Filter: 4
5. 40.000 150.000 ↑ 1.0 1 10,000

Limit (cost=0.56..4.67 rows=1 width=27) (actual time=0.012..0.015 rows=1 loops=10,000)

  • Output: product.id, product.created, product.provider
6. 110.000 110.000 ↑ 42.0 1 10,000

Index Scan using product_upc_created_idx on public."Product" product (cost=0.56..173.28 rows=42 width=27) (actual time=0.011..0.011 rows=1 loops=10,000)

  • Output: product.id, product.created, product.provider
  • Index Cond: ((product.upc)::text = ("JobPayload".upc)::text)
7. 60.000 60.000 ↑ 1.0 1 10,000

Index Scan using "ProductPayload_pkey" on public."ProductPayload" y (cost=0.43..8.45 rows=1 width=238) (actual time=0.006..0.006 rows=1 loops=10,000)

  • Output: y.pid, y.title, y.description, y.payload
  • Index Cond: (y.pid = product.id)
Planning time : 0.352 ms
Execution time : 300.290 ms