explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 2xKQ

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 38.635 ↑ 1.1 1,159 1

Finalize HashAggregate (cost=14,058.12..14,071.09 rows=1,297 width=4) (actual time=38.518..38.635 rows=1,159 loops=1)

  • Group Key: inventory_item.product_variant_id
2. 6.653 39.442 ↓ 1.2 3,143 1

Gather (cost=13,779.26..14,051.63 rows=2,594 width=4) (actual time=35.544..39.442 rows=3,143 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 6.872 32.789 ↑ 1.2 1,048 3 / 3

Partial HashAggregate (cost=12,779.26..12,792.23 rows=1,297 width=4) (actual time=32.645..32.789 rows=1,048 loops=3)

  • Group Key: inventory_item.product_variant_id
4. 7.788 25.917 ↓ 5.4 40,561 3 / 3

Hash Join (cost=2,214.73..12,760.47 rows=7,518 width=4) (actual time=1.255..25.917 rows=40,561 loops=3)

  • Hash Cond: (inventory_item.poc_id = poc.id)
5. 16.904 16.904 ↑ 1.8 47,774 3 / 3

Parallel Seq Scan on inventory_item (cost=0.00..10,317.80 rows=86,807 width=8) (actual time=0.013..16.904 rows=47,774 loops=3)

  • Filter: ((available_date IS NOT NULL) AND (price > '0'::double precision))
  • Rows Removed by Filter: 35195
6. 0.120 1.225 ↑ 1.3 943 3 / 3

Hash (cost=2,199.07..2,199.07 rows=1,253 width=4) (actual time=1.225..1.225 rows=943 loops=3)

  • Buckets: 2048 Batches: 1 Memory Usage: 50kB
7. 0.889 1.105 ↑ 1.3 943 3 / 3

Bitmap Heap Scan on poc (cost=102.29..2,199.07 rows=1,253 width=4) (actual time=0.294..1.105 rows=943 loops=3)

  • Recheck Cond: (status = ANY ('{OPERATIONAL,ASSISTED_OPERATIONAL}'::poc_status[]))
  • Heap Blocks: exact=753
8. 0.216 0.216 ↓ 1.2 1,450 3 / 3

Bitmap Index Scan on ix_poc_status (cost=0.00..101.97 rows=1,253 width=0) (actual time=0.216..0.216 rows=1,450 loops=3)

  • Index Cond: (status = ANY ('{OPERATIONAL,ASSISTED_OPERATIONAL}'::poc_status[]))
Planning time : 0.229 ms
Execution time : 40.169 ms