explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 3EwV

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

XN Hash Join DS_DIST_ALL_NONE (cost=8,442.61..988,117,849,300.31 rows=2,621 width=169) (actual rows= loops=)

  • Hash Cond: ((("outer".id)::text = ("inner".aeic)::text) AND ("outer".kpi_id = "inner".kpi_id) AND (("outer"."month")::text = to_char(("inner".fact_dt)::timestamp without time zone, 'MM'::text)) AND (("outer"."year")::double precision = pgdate_part('year'::text, ("inner".fact_dt)::timestamp without time zone)) AND ("outer".fact_id = "inner".fact_id))
  • Join Filter: (("inner".to_ts < "outer".mapping_end) AND ("inner".from_ts >= "outer".mapping_start) AND ("inner".from_ts <= "outer".tag_timestamp_utc) AND ("inner".to_ts > "outer".tag_timestamp_utc))
2. 0.000 0.000 ↓ 0.0

XN Hash Join DS_BCAST_INNER (cost=5,417.08..988,116,266,044.97 rows=12,899,729 width=201) (actual rows= loops=)

  • Hash Cond: ((("outer".tag_name)::text = ("inner".tag_name)::text) AND (("outer"."datasource")::text = ("inner"."datasource")::text))
3. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_BCAST_INNER (cost=3.90..728,979,285,063.74 rows=10,365,448,504,984 width=344) (actual rows= loops=)

  • Hash Cond: (checksum("outer".unitofmeasure) = "inner".uom_id)
4. 0.000 0.000 ↓ 0.0

XN Partition Loop (cost=0.00..200,200,000,010.00 rows=10,000,000,000,000 width=319) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

XN Seq Scan PartitionInfo of ida_eap_prd_tbl_hist.pdc_snsr_wts wts (cost=0.00..10.00 rows=1,000 width=75) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

XN S3 Query Scan wts (cost=0.00..200,000,000.00 rows=10,000,000,000 width=244) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

S3 Seq Scan ida_eap_prd_tbl_hist.pdc_snsr_wts wts location:"s3://den-prd-fra-mosaic-archive/ORC/wts" format:ORC_FILE (cost=0.00..100,000,000.00 rows=10,000,000,000 width=244) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

XN Hash (cost=3.12..3.12 rows=312 width=29) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

XN Seq Scan on uom_cnvs_map uom (cost=0.00..3.12 rows=312 width=29) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

XN Hash (cost=5,413.18..5,413.18 rows=1 width=65) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

XN Hash Join DS_DIST_ALL_NONE (cost=5,408.79..5,413.18 rows=1 width=65) (actual rows= loops=)

  • Hash Cond: (("outer".kpi_name)::text = ("inner".gpn)::text)
12. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_kpi_v2 k (cost=0.00..0.15 rows=1 width=26) (actual rows= loops=)

  • Filter: ((kpi_id = 12) AND (fact_id = 7))
13. 0.000 0.000 ↓ 0.0

XN Hash (cost=5,407.74..5,407.74 rows=422 width=74) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

XN Seq Scan on pdc_gpn_map g (cost=0.00..5,407.74 rows=422 width=74) (actual rows= loops=)

  • Filter: ('000710'::text = (id)::text)
15. 0.000 0.000 ↓ 0.0

XN Hash (cost=3,025.51..3,025.51 rows=1 width=38) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

XN Seq Scan on asset_missing_series s (cost=0.00..3,025.51 rows=1 width=38) (actual rows= loops=)

  • Filter: ((kpi_id = 12) AND ((aeic)::text = '000710'::text) AND (fact_dt = '2018-01-01'::date) AND (fact_id = 7))