explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Chdw : Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: plan #Wfg3; plan #Bfjj; plan #moJ0; plan #RqCS; plan #tWiUD

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 0.358 2.874 ↑ 1.0 1 1

CTE Scan on candidates (cost=202.63..202.65 rows=1 width=98) (actual time=2.846..2.874 rows=1 loops=1)

  • Filter: ($4 = special_airport)
  • Rows Removed by Filter: 1
2.          

CTE candidates

3. 0.689 0.689 ↓ 2.0 2 1

Index Scan using travel_cancellation_option_ma_partner_id_site_id_country_fa_idx on travel_cancellation_option_mapping tcom (cost=0.41..41.69 rows=1 width=133) (actual time=0.209..0.689 rows=2 loops=1)

  • Index Cond: ((partner_id = '1'::text) AND (site_id = '1'::text) AND (country = 'JP'::text) AND (fare_class = 'SuperValue'::text) AND ((currency)::text = 'JPY'::text) AND (price_band_1_item_count = 1) AND (price_band_1_price_start < '20000'::numeric) AND (price_band_1_price_end >= '20000'::numeric) AND (price_band_2_item_count = 1) AND (price_band_2_price_start < '10000'::numeric) AND (price_band_2_price_end >= '10000'::numeric))
  • Filter: ((allowed_airports IS NULL) OR ('{NRT,OKA}'::text[] <@ allowed_airports))
4.          

Initplan (forCTE Scan)

5. 0.093 0.778 ↑ 1.0 1 1

Aggregate (cost=80.46..80.47 rows=1 width=1) (actual time=0.750..0.778 rows=1 loops=1)

6. 0.184 0.685 ↓ 2.0 2 1

Nested Loop (cost=5.29..80.45 rows=1 width=33) (actual time=0.363..0.685 rows=2 loops=1)

7. 0.053 0.053 ↓ 2.0 2 1

CTE Scan on candidates candidates_1 (cost=0.00..0.02 rows=1 width=32) (actual time=0.012..0.053 rows=2 loops=1)

8. 0.228 0.448 ↑ 1.0 1 2

Bitmap Heap Scan on special_airports sa (cost=5.29..80.42 rows=1 width=66) (actual time=0.190..0.224 rows=1 loops=2)

  • Recheck Cond: ((mapping_id = candidates_1.id) AND (1 >= start_day) AND (9 >= start_month) AND (1 <= end_day) AND (9 <= end_month) AND (NOT is_deleted))
  • Filter: (('NRT'::text = code) OR ('OKA'::text = code))
  • Rows Removed by Filter: 12
  • Heap Blocks: exact=3
9. 0.220 0.220 ↑ 1.5 13 2

Bitmap Index Scan on special_airports_mapping_id_code_start_day_start_month_end__idx (cost=0.00..5.29 rows=19 width=0) (actual time=0.105..0.110 rows=13 loops=2)

  • Index Cond: ((mapping_id = candidates_1.id) AND (1 >= start_day) AND (9 >= start_month) AND (1 <= end_day) AND (9 <= end_month))
10. 0.163 1.738 ↑ 1.0 1 1

Aggregate (cost=80.46..80.47 rows=1 width=1) (actual time=1.711..1.738 rows=1 loops=1)

11. 0.195 1.575 ↓ 2.0 2 1

Nested Loop (cost=5.29..80.45 rows=1 width=33) (actual time=0.306..1.575 rows=2 loops=1)

12. 0.948 0.948 ↓ 2.0 2 1

CTE Scan on candidates candidates_2 (cost=0.00..0.02 rows=1 width=32) (actual time=0.012..0.948 rows=2 loops=1)

13. 0.208 0.432 ↑ 1.0 1 2

Bitmap Heap Scan on special_airports sa_1 (cost=5.29..80.42 rows=1 width=66) (actual time=0.178..0.216 rows=1 loops=2)

  • Recheck Cond: ((mapping_id = candidates_2.id) AND (1 >= start_day) AND (9 >= start_month) AND (1 <= end_day) AND (9 <= end_month) AND (NOT is_deleted))
  • Filter: (('NRT'::text = code) OR ('OKA'::text = code))
  • Rows Removed by Filter: 12
  • Heap Blocks: exact=3
14. 0.224 0.224 ↑ 1.5 13 2

Bitmap Index Scan on special_airports_mapping_id_code_start_day_start_month_end__idx (cost=0.00..5.29 rows=19 width=0) (actual time=0.105..0.112 rows=13 loops=2)

  • Index Cond: ((mapping_id = candidates_2.id) AND (1 >= start_day) AND (9 >= start_month) AND (1 <= end_day) AND (9 <= end_month))
Planning time : 3.884 ms
Execution time : 5.128 ms