explain.depesz.com

PostgreSQL's explain analyze made readable

Result: wIiZ

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

Append (cost=1,524,856.16..44,750,011.19 rows=86,551,144 width=228) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Gather (cost=1,524,856.16..15,947,531.34 rows=47,970,504 width=228) (actual rows= loops=)

  • Workers Planned: 4
3. 0.000 0.000 ↓ 0.0

Parallel Hash Anti Join (cost=1,523,856.16..11,149,480.94 rows=11,992,626 width=228) (actual rows= loops=)

  • Hash Cond: (dl.bk_hash = dta.bk_hash)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..8,603,507.99 rows=13,981,790 width=196) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on spark_legal_entity (cost=0.00..42,851.21 rows=173,122 width=4) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Index Scan using idx_accounting_report_actual_spark_id on accounting_report_actual dl (cost=0.57..48.64 rows=81 width=196) (actual rows= loops=)

  • Index Cond: (spark_id = spark_legal_entity.spark_id)
7. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=1,325,625.04..1,325,625.04 rows=9,759,004 width=33) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on spark_accounting_report dta (cost=0.00..1,325,625.04 rows=9,759,004 width=33) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Unique (cost=27,310,008.50..27,504,212.68 rows=38,580,640 width=229) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Sort (cost=27,310,008.50..27,407,110.59 rows=38,840,836 width=229) (actual rows= loops=)

  • Sort Key: dta_1.bk_hash, dta_1.row_hash
11. 0.000 0.000 ↓ 0.0

Gather (cost=11,315,530.92..19,076,026.40 rows=38,840,836 width=229) (actual rows= loops=)

  • Workers Planned: 4
12. 0.000 0.000 ↓ 0.0

Parallel Hash Left Join (cost=11,314,530.92..15,190,942.80 rows=9,710,209 width=229) (actual rows= loops=)

  • Hash Cond: (dta_1.bk_hash = dl_1.bk_hash)
  • Filter: ((dl_1.bk_hash IS NULL) OR (dl_1.row_hash <> dta_1.row_hash))
13. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on spark_accounting_report dta_1 (cost=0.00..1,642,792.67 rows=9,710,209 width=197) (actual rows= loops=)

  • Filter: ((row_hash)::text <> md5(((((((((COALESCE((spark_id)::text, ''::text) || '$/$'::text) || '$/$'::text) || '$/$'::text) || '$/$'::text) || '$/$'::text) || '$/$'::text) || '$/$'::text) || '$/$'::text)))
14. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=9,664,653.52..9,664,653.52 rows=68,123,952 width=66) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on accounting_report_actual dl_1 (cost=0.00..9,664,653.52 rows=68,123,952 width=66) (actual rows= loops=)