explain.depesz.com

PostgreSQL's explain analyze made readable

Result: dl4w

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Limit (cost=626.82..626.82 rows=2 width=4,670) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=626.82..626.82 rows=2 width=4,670) (actual rows= loops=)

  • Sort Key: ((((ts_rank(retailer_products.full_text_v1, '''paper'''::tsquery, 1) * '100'::double precision) + COALESCE(products_conversions.score, '0'::double precision)) * '1'::double precision)) DESC, items_0.item_id DESC
3. 0.000 0.000 ↓ 0.0

WindowAgg (cost=14.11..626.81 rows=2 width=4,670) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=14.11..626.75 rows=2 width=4,557) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=13.82..623.75 rows=2 width=3,715) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=13.54..622.22 rows=2 width=3,688) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=13.26..617.15 rows=2 width=3,109) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=12.84..601.59 rows=2 width=3,101) (actual rows= loops=)

  • Filter: (COALESCE(items_availabilities.availability_score, '0.87'::double precision) > '0.25'::double precision)
9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.68..600.47 rows=5 width=3,093) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on retailer_products (cost=12.40..200.64 rows=51 width=2,614) (actual rows= loops=)

  • Recheck Cond: (full_text_v1 @@ '''paper'''::tsquery)
11. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_retailer_products_on_full_text_v1 (cost=0.00..12.38 rows=51 width=0) (actual rows= loops=)

  • Index Cond: (full_text_v1 @@ '''paper'''::tsquery)
12. 0.000 0.000 ↓ 0.0

Index Scan using items_0_retailer_id_product_id_inventory_area_id_idx on items_0 (cost=0.29..7.84 rows=1 width=479) (actual rows= loops=)

  • Index Cond: ((retailer_id = retailer_products.retailer_id) AND (product_id = retailer_products.product_id) AND (inventory_area_id = 20636))
  • Filter: (visible AND available)
13. 0.000 0.000 ↓ 0.0

Index Scan using items_availabilities_0_item_id_idx on items_availabilities_0 items_availabilities (cost=0.15..0.21 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (item_id = items_0.item_id)
14. 0.000 0.000 ↓ 0.0

Index Scan using index_products_conversions_on_cpk on products_conversions (cost=0.42..5.94 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((version = 3) AND (product_id = items_0.product_id) AND ((query)::text = 'paper'::text))
15. 0.000 0.000 ↓ 0.0

Index Scan using index_deprecated_retailer_products_mls_cpk on deprecated_retailer_products_mls (cost=0.28..2.53 rows=1 width=587) (actual rows= loops=)

  • Index Cond: ((retailer_id = items_0.retailer_id) AND (product_id = items_0.product_id))
16. 0.000 0.000 ↓ 0.0

Index Scan using index_deprecated_retailer_products_cpgs_cpk on deprecated_retailer_products_cpgs (cost=0.29..0.76 rows=1 width=35) (actual rows= loops=)

  • Index Cond: ((retailer_id = items_0.retailer_id) AND (product_id = items_0.product_id))
17. 0.000 0.000 ↓ 0.0

Index Scan using deprecated_items_denormalizeds_0_product_id_idx on deprecated_items_denormalizeds_0 (cost=0.29..1.49 rows=1 width=842) (actual rows= loops=)

  • Index Cond: (product_id = items_0.product_id)" Filter: ((inventory_area_id = 20636) AND (inventory_area_id = items_0.inventory_area_id) AND (retailer_id = items_0.retailer_id))