explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 0SILf : Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: Optimization for: plan #Wfg3; plan #Bfjj; plan #moJ0; plan #RqCS; plan #tWiUD; plan #vdJC; plan #sgOS5; plan #AEbe; plan #EJsH

Settings

Optimization path:

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 0.069 1.794 ↑ 1.0 1 1

Subquery Scan on results (cost=58.95..58.98 rows=1 width=96) (actual time=1.738..1.794 rows=1 loops=1)

2. 0.309 1.725 ↑ 1.0 1 1

CTE Scan on candidates (cost=58.95..58.98 rows=1 width=98) (actual time=1.696..1.725 rows=1 loops=1)

  • Filter: ($5 = special_airport)
  • Rows Removed by Filter: 1
3.          

CTE candidates

4. 0.520 0.520 ↓ 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.185..0.520 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))
5.          

Initplan (forCTE Scan)

6. 0.105 1.416 ↑ 1.0 1 1

Aggregate (cost=17.25..17.27 rows=1 width=1) (actual time=1.389..1.416 rows=1 loops=1)

7. 0.177 1.311 ↓ 2.0 2 1

Nested Loop (cost=0.55..17.25 rows=1 width=33) (actual time=0.309..1.311 rows=2 loops=1)

8. 0.412 0.412 ↓ 2.0 2 1

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

9. 0.358 0.722 ↑ 2.0 1 2

Nested Loop (cost=0.55..17.21 rows=2 width=66) (actual time=0.255..0.361 rows=1 loops=2)

10. 0.124 0.124 ↑ 1.0 2 2

Values Scan on "*VALUES*" (cost=0.00..0.03 rows=2 width=40) (actual time=0.024..0.062 rows=2 loops=2)

11. 0.240 0.240 ↓ 0.0 0 4

Index Scan using special_airports_mapping_id_code_start_day_start_month_end__idx on special_airports sa (cost=0.55..8.58 rows=1 width=86) (actual time=0.046..0.060 rows=0 loops=4)

  • Index Cond: ((mapping_id = candidates_1.id) AND (code = "*VALUES*".column1) AND (start_day <= "*VALUES*".column2) AND (start_month <= "*VALUES*".column3) AND (end_day >= "*VALUES*".column2) AND (end_month >= "*VALUES*".column3))