explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Mwvr

Settings
# exclusive inclusive rows x rows loops node
1. 0.004 73.510 ↓ 2.0 2 1

Unique (cost=19,624.06..19,624.07 rows=1 width=9) (actual time=73.506..73.510 rows=2 loops=1)

2. 0.015 73.506 ↓ 8.0 8 1

Sort (cost=19,624.06..19,624.06 rows=1 width=9) (actual time=73.506..73.506 rows=8 loops=1)

  • Sort Key: (((NOT ((productfrom.width)::text IS DISTINCT FROM (productto.width)::text)) AND (NOT ((productfrom.depth)::text IS DISTINCT FROM (productto.depth)::text)) AND (NOT ((productfrom.length)::text IS DISTINCT FROM (productto.length)::text)) AND (NOT ((productfrom.height)::text IS DISTINCT FROM (productto.height)::text)) AND (NOT ((productfrom.diameter)::text IS DISTINCT FROM (productto.diameter)::text)))) DESC, (((productto.custom_program IS NULL) = (productfrom.custom_program IS NULL))) DESC, productto.article_number
  • Sort Method: quicksort Memory: 25kB
3. 0.011 73.491 ↓ 8.0 8 1

Nested Loop Left Join (cost=1,006.32..19,624.05 rows=1 width=9) (actual time=32.458..73.491 rows=8 loops=1)

  • Filter: ((fromisleather.name)::text IS DISTINCT FROM (toisleather.name)::text)
  • Rows Removed by Filter: 12
4. 0.014 73.420 ↓ 20.0 20 1

Nested Loop Left Join (cost=1,005.89..19,615.57 rows=1 width=83) (actual time=32.448..73.420 rows=20 loops=1)

5. 0.018 73.326 ↓ 20.0 20 1

Nested Loop (cost=1,005.46..19,612.22 rows=1 width=87) (actual time=32.434..73.326 rows=20 loops=1)

  • Join Filter: ((rls.valid_from >= c.valid_from) AND (rls.valid_from <= c.valid_to))
6. 0.016 73.268 ↓ 20.0 20 1

Nested Loop (cost=1,005.19..19,610.06 rows=1 width=111) (actual time=32.426..73.268 rows=20 loops=1)

7. 0.013 73.102 ↓ 25.0 25 1

Nested Loop (cost=1,004.90..19,600.79 rows=1 width=119) (actual time=32.415..73.102 rows=25 loops=1)

  • Join Filter: ((rls.valid_from >= s.valid_from) AND (rls.valid_from <= s.valid_to))
8. 0.013 73.014 ↓ 6.2 25 1

Nested Loop (cost=1,004.61..19,588.71 rows=4 width=111) (actual time=32.405..73.014 rows=25 loops=1)

9. 0.023 72.926 ↓ 6.2 25 1

Nested Loop (cost=1,004.32..19,578.74 rows=4 width=111) (actual time=32.395..72.926 rows=25 loops=1)

10. 0.111 72.698 ↓ 5.0 5 1

Nested Loop Left Join (cost=1,002.52..19,537.84 rows=1 width=119) (actual time=32.354..72.698 rows=5 loops=1)

  • Filter: (NOT ((subsetto.characteristic_value_key)::text IS DISTINCT FROM (subsetfrom.characteristic_value_key)::text))
  • Rows Removed by Filter: 256
11. 0.000 71.282 ↓ 6.7 261 1

Nested Loop (cost=1,001.96..19,255.66 rows=39 width=123) (actual time=4.627..71.282 rows=261 loops=1)

  • Join Filter: ((productto.product_id <> productfrom.product_id) AND (NOT ((productto.collection)::text IS DISTINCT FROM (productfrom.collection)::text)))
  • Rows Removed by Join Filter: 24,412
12. 0.003 0.030 ↑ 1.0 1 1

Nested Loop Left Join (cost=0.98..17.03 rows=1 width=48) (actual time=0.028..0.030 rows=1 loops=1)

13. 0.018 0.018 ↑ 1.0 1 1

Index Scan using web_product_article_num_uk on web_product productfrom (cost=0.42..8.44 rows=1 width=44) (actual time=0.017..0.018 rows=1 loops=1)

  • Index Cond: (((article_number)::text = '10009994'::text) AND (release_id = 389))
14. 0.009 0.009 ↑ 1.0 1 1

Index Scan using web_product_attribute_pk on web_product_attribute subsetfrom (cost=0.56..8.58 rows=1 width=20) (actual time=0.009..0.009 rows=1 loops=1)

  • Index Cond: ((productfrom.product_id = product_id) AND (productfrom.release_id = release_id) AND (release_id = 389) AND ((characteristic_key)::text = 'EPM_SUBSET'::text))
15. 18.211 78.630 ↓ 7.0 24,673 1

Gather (cost=1,000.98..19,186.10 rows=3,502 width=83) (actual time=0.815..78.630 rows=24,673 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
16. 6.401 60.419 ↓ 5.6 8,224 3 / 3

Nested Loop (cost=0.98..17,835.90 rows=1,459 width=83) (actual time=0.142..60.419 rows=8,224 loops=3)

17. 1.045 29.282 ↓ 5.5 8,245 3 / 3

Nested Loop (cost=0.55..11,601.56 rows=1,503 width=48) (actual time=0.087..29.282 rows=8,245 loops=3)

18. 0.634 9.691 ↓ 2.7 806 3 / 3

Nested Loop (cost=0.13..4,817.43 rows=299 width=24) (actual time=0.047..9.691 rows=806 loops=3)

19. 6.924 6.924 ↑ 1.3 2,133 3 / 3

Parallel Seq Scan on product_group pg (cost=0.00..4,391.87 rows=2,694 width=32) (actual time=0.018..6.924 rows=2,133 loops=3)

  • Filter: ((release_id = 389) AND (deleted_flag = 0))
  • Rows Removed by Filter: 11,407
20. 2.133 2.133 ↓ 0.0 0 6,399 / 3

Index Scan using release_valid_from_uk on release rls (cost=0.13..0.16 rows=1 width=16) (actual time=0.001..0.001 rows=0 loops=6,399)

  • Index Cond: ((valid_from >= pg.valid_from) AND (valid_from <= pg.valid_to))
  • Filter: (id = 389)
  • Rows Removed by Filter: 0
21. 18.546 18.546 ↓ 1.4 10 2,419 / 3

Index Scan using product_group_product_pk on product_group_product pgp (cost=0.42..22.62 rows=7 width=24) (actual time=0.011..0.023 rows=10 loops=2,419)

  • Index Cond: ((product_group_id = pg.id) AND (release_id = 389))
  • Filter: (deleted_flag = 0)
  • Rows Removed by Filter: 10
22. 24.736 24.736 ↑ 1.0 1 24,736 / 3

Index Scan using web_product_pk on web_product productto (cost=0.42..4.15 rows=1 width=51) (actual time=0.003..0.003 rows=1 loops=24,736)

  • Index Cond: ((product_id = pgp.product_id) AND (release_id = 389))
23. 1.305 1.305 ↑ 1.0 1 261

Index Scan using web_product_attribute_pk on web_product_attribute subsetto (cost=0.56..7.22 rows=1 width=20) (actual time=0.005..0.005 rows=1 loops=261)

  • Index Cond: ((productto.product_id = product_id) AND (productto.release_id = release_id) AND (release_id = 389) AND ((characteristic_key)::text = 'EPM_SUBSET'::text))
24. 0.175 0.205 ↓ 1.2 5 5

Bitmap Heap Scan on subcategory_set_product_group sspg (cost=1.80..40.86 rows=4 width=24) (actual time=0.023..0.041 rows=5 loops=5)

  • Recheck Cond: (product_group_id = pgp.product_group_id)
  • Filter: ((release_id = 389) AND (deleted_flag = 0))
  • Rows Removed by Filter: 27
  • Heap Blocks: exact=153
25. 0.030 0.030 ↑ 1.1 32 5

Bitmap Index Scan on subcategory_set_product_group_product_group_id_idx (cost=0.00..1.80 rows=36 width=0) (actual time=0.006..0.006 rows=32 loops=5)

  • Index Cond: (product_group_id = pgp.product_group_id)
26. 0.075 0.075 ↑ 1.0 1 25

Index Scan using subcategory_set_pk on subcategory_set ss (cost=0.29..2.49 rows=1 width=24) (actual time=0.003..0.003 rows=1 loops=25)

  • Index Cond: ((id = sspg.subcategory_set_id) AND (release_id = 389))
  • Filter: (deleted_flag = 0)
27. 0.075 0.075 ↑ 1.0 1 25

Index Scan using subcategory_pk on subcategory s (cost=0.29..3.01 rows=1 width=32) (actual time=0.003..0.003 rows=1 loops=25)

  • Index Cond: ((id = ss.subcategory_id) AND (release_id = 389))
  • Filter: (deleted_flag = 0)
28. 0.150 0.150 ↑ 1.0 1 25

Index Scan using category_subcategory_subcategory_id_idx on category_subcategory cs (cost=0.29..9.26 rows=1 width=24) (actual time=0.004..0.006 rows=1 loops=25)

  • Index Cond: (subcategory_id = s.id)
  • Filter: ((release_id = 389) AND (deleted_flag = 0))
  • Rows Removed by Filter: 5
29. 0.040 0.040 ↑ 1.0 1 20

Index Scan using category_pk on category c (cost=0.28..2.15 rows=1 width=32) (actual time=0.002..0.002 rows=1 loops=20)

  • Index Cond: ((id = cs.category_id) AND (release_id = 389))
  • Filter: (deleted_flag = 0)
30. 0.080 0.080 ↓ 0.0 0 20

Index Only Scan using web_product_type_pk on web_product_type toisleather (cost=0.43..3.34 rows=1 width=28) (actual time=0.004..0.004 rows=0 loops=20)

  • Index Cond: ((product_id = productto.product_id) AND (release_id = productto.release_id) AND (release_id = 389) AND (name = 'LEATHER'::text))
  • Heap Fetches: 8
31. 0.060 0.060 ↓ 0.0 0 20

Index Only Scan using web_product_type_pk on web_product_type fromisleather (cost=0.43..8.45 rows=1 width=28) (actual time=0.003..0.003 rows=0 loops=20)

  • Index Cond: ((product_id = productfrom.product_id) AND (release_id = productfrom.release_id) AND (release_id = 389) AND (name = 'LEATHER'::text))
  • Heap Fetches: 0
Planning time : 18.442 ms
Execution time : 83.348 ms