explain.depesz.com

PostgreSQL's explain analyze made readable

Result: xiTy

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

Sort (cost=947,546.50..947,882.58 rows=134,433 width=120) (actual rows= loops=)

  • Sort Key: u.aeic, k.kpi_id, c.calc_rslt_strt_ts
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=933,791.49..936,095.14 rows=134,433 width=120) (actual rows= loops=)

  • Hash Cond: (u.unit_id = c.unit_key)
3. 0.000 0.000 ↓ 0.0

Seq Scan on dim_unit_1543595794275 u (cost=0.00..22.70 rows=1,270 width=36) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Hash (cost=932,919.52..932,919.52 rows=69,757 width=88) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Hash Join (cost=556.29..932,919.52 rows=69,757 width=88) (actual rows= loops=)

  • Hash Cond: (c.calc_rslt_var_key = v.calc_rslt_var_key)
6. 0.000 0.000 ↓ 0.0

Append (cost=0.00..929,382.40 rows=608,879 width=22) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Seq Scan on calc_rslt c (cost=0.00..0.00 rows=1 width=22) (actual rows= loops=)

  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone) AND (date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
8. 0.000 0.000 ↓ 0.0

Seq Scan on calc_rslt_2 c_1 (cost=0.00..0.00 rows=1 width=22) (actual rows= loops=)

  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone) AND (date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
9. 0.000 0.000 ↓ 0.0

Seq Scan on calc_rslt_8 c_2 (cost=0.00..0.00 rows=1 width=22) (actual rows= loops=)

  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone) AND (date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
10. 0.000 0.000 ↓ 0.0

Seq Scan on calc_rslt_9 c_3 (cost=0.00..0.00 rows=1 width=22) (actual rows= loops=)

  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone) AND (date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
11. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on calc_rslt_2_201801 c_4 (cost=1,480.91..137,476.60 rows=59,580 width=22) (actual rows= loops=)

  • Recheck Cond: ((date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone))
12. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on calc_rslt_2_201801_days_ix (cost=0.00..1,466.02 rows=93,758 width=0) (actual rows= loops=)

  • Index Cond: ((date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
13. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on calc_rslt_8_201801 c_5 (cost=8,876.56..791,585.81 rows=549,294 width=22) (actual rows= loops=)

  • Recheck Cond: ((date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone))
14. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on calc_rslt_8_201801_days_ix (cost=0.00..8,739.24 rows=551,867 width=0) (actual rows= loops=)

  • Index Cond: ((date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
15. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on calc_rslt_9_201801 c_6 (cost=7.32..319.99 rows=1 width=22) (actual rows= loops=)

  • Recheck Cond: (rw_exp_ts = '9999-12-31 23:59:59.999999'::timestamp without time zone)
  • Filter: ((calc_rslt_strt_ts >= '2018-01-01 00:00:00'::timestamp without time zone) AND (calc_rslt_strt_ts < '2018-02-01 00:00:00'::timestamp without time zone) AND (date_trunc('day'::text, calc_rslt_strt_ts) >= '2018-01-01'::date) AND (date_trunc('day'::text, calc_rslt_strt_ts) < '2018-02-01'::date))
16. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on calc_rslt_maint_hlp_ix_9_201801 (cost=0.00..7.32 rows=180 width=0) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=537.29..537.29 rows=1,520 width=70) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Hash Join (cost=484.53..537.29 rows=1,520 width=70) (actual rows= loops=)

  • Hash Cond: ((k.kpi_name)::text = (v.calc_rslt_var_nm)::text)
19. 0.000 0.000 ↓ 0.0

Seq Scan on dim_kpi_1543595794275 k (cost=0.00..16.30 rows=630 width=68) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash (cost=318.68..318.68 rows=13,268 width=18) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Seq Scan on calc_rslt_var v (cost=0.00..318.68 rows=13,268 width=18) (actual rows= loops=)