explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Fmaj

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

Aggregate (cost=5,769,222.42..5,769,222.43 rows=1 width=8) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Gather Motion 64:1 (slice5; segments: 64) (cost=5,769,221.75..5,769,222.41 rows=1 width=8) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Aggregate (cost=5,769,221.75..5,769,221.76 rows=1 width=8) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Anti Semi Join (Not-In) (cost=2,003.30..5,769,221.74 rows=1 width=0) (actual rows= loops=)

  • Join Filter: e2.operator_icao::text = "NotIn_SUBQUERY".airline_code::text AND CASE WHEN e2.engine_family::text = 'CFM56-3'::text THEN 'CFM56-3'::character varying WHEN e2.engine_family::text ~~ 'CFM56-3-%'::text THEN 'CFM56-3'::characte (...)
5. 0.000 0.000 ↓ 0.0

Hash Left Anti Semi Join (Not-In) (cost=1,958.14..5,768,970.89 rows=1 width=194) (actual rows= loops=)

  • Hash Cond: e2.operator_icao::text = "NotIn_SUBQUERY".airline_code::text
6. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,810.66..5,768,823.05 rows=1 width=194) (actual rows= loops=)

  • Hash Cond: e2.src_tail::text = ec.tail_num::text AND to_char(e2.flight_date_exact, 'YYYY-MM'::text) = to_char(ec.flight_date::timestamp with time zone, 'YYYY-MM'::text)
  • Join Filter: ec.adi_flight_record_number = e2.adi_flight_record_number
7. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice1; segments: 64) (cost=0.00..5,767,010.82 rows=5 width=308) (actual rows= loops=)

  • Hash Key: to_char(e2.flight_date_exact, 'YYYY-MM'::text), e2.src_tail::text
8. 0.000 0.000 ↓ 0.0

Append-only Scan on flight_engine_summary_final e2 (cost=0.00..5,767,005.23 rows=5 width=308) (actual rows= loops=)

  • Filter: engine_family::text !~~ 'GENX-%'::text AND to_char(flight_date_exact, 'YYYYMM'::text) >= '201401'::text AND (length(operator_icao::text) = 3 OR (operator_icao::text = 'WWAH'::text AND engine_family::text (...)
9. 0.000 0.000 ↓ 0.0

Hash (cost=1,385.23..1,385.23 rows=444 width=23) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice2; segments: 64) (cost=0.00..1,385.23 rows=444 width=23) (actual rows= loops=)

  • Hash Key: to_char(ec.flight_date::timestamp with time zone, 'YYYY-MM'::text), ec.tail_num::text
11. 0.000 0.000 ↓ 0.0

Seq Scan on ceod_engine_central_valid ec (cost=0.00..818.00 rows=444 width=23) (actual rows= loops=)

  • Filter: file_type::text = 'QAR'::text AND (ems_origination::text = ANY ('{HoustonDC_EMS11,DubaiDC_EMS002,ShanghaiDC_EMS04,DubaiDC_EMS005}'::text[])) AND 'QAR'::text = file_type::text
12. 0.000 0.000 ↓ 0.0

Hash (cost=90.69..90.69 rows=71 width=68) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Broadcast Motion 64:64 (slice3; segments: 64) (cost=43.12..90.69 rows=71 width=68) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Subquery Scan "NotIn_SUBQUERY" (cost=43.12..44.54 rows=2 width=68) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

HashAggregate (cost=43.12..43.83 rows=2 width=72) (actual rows= loops=)

  • Group By: geagp_ddag_ceod_auditing.ceod_exclude_airlines.airline_code
16. 0.000 0.000 ↓ 0.0

Seq Scan on ceod_exclude_airlines (cost=0.00..42.94 rows=2 width=4) (actual rows= loops=)

  • Filter: engine_model::text = ''::text
17. 0.000 0.000 ↓ 0.0

Materialize (cost=45.15..47.07 rows=3 width=136) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Broadcast Motion 64:64 (slice4; segments: 64) (cost=42.95..44.96 rows=3 width=136) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Subquery Scan "NotIn_SUBQUERY" (cost=42.95..43.01 rows=1 width=136) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

HashAggregate (cost=42.95..42.98 rows=1 width=140) (actual rows= loops=)

  • Group By: geagp_ddag_ceod_auditing.ceod_exclude_airlines.airline_code, geagp_ddag_ceod_auditing.ceod_exclude_airlines.engine_model
21. 0.000 0.000 ↓ 0.0

Seq Scan on ceod_exclude_airlines (cost=0.00..42.94 rows=1 width=5) (actual rows= loops=)

  • Filter: engine_model::text <> ''::text