explain.depesz.com

PostgreSQL's explain analyze made readable

Result: dG3t

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

Hash Right Join (cost=8,465.89..8,839.97 rows=513 width=8) (actual rows= loops=)

  • Hash Cond: (((b_1.card_acceptor_id)::text = (b.agente)::text) AND ((b_1.terminal_code)::text = (b.terminal_id)::text) AND ((b_1.approval_code)::text = (b.codice_autorizzazione)::text))
  • Join Filter: ((date_trunc('minutes'::text, b_1.datetime_transaction) >= (date_trunc('minutes'::text, b.data_operazione) - '00:01:00'::interval minute)) AND (date_trunc('minutes'::text, b_1.datetime_transaction) <= (date_trunc('minutes'::text, b.data_operazione) + '00:01:00'::interval minute)))
  • Filter: ((b_1.id IS NULL) OR (b_1.amount_transaction <> b.importo))
2. 0.000 0.000 ↓ 0.0

Merge Join (cost=3,789.40..4,157.65 rows=515 width=43) (actual rows= loops=)

  • Merge Cond: (((substring((a_1.meid)::text, 1, 7)) = (b_1.card_acceptor_id)::text) AND (a_1.term = (b_1.terminal_code)::bpchar))
3. 0.000 0.000 ↓ 0.0

Sort (cost=355.91..357.73 rows=727 width=102) (actual rows= loops=)

  • Sort Key: (substring((a_1.meid)::text, 1, 7)), a_1.term
4. 0.000 0.000 ↓ 0.0

Subquery Scan on a_1 (cost=306.82..321.36 rows=727 width=102) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

HashAggregate (cost=306.82..314.09 rows=727 width=132) (actual rows= loops=)

  • Group Key: conv2ac.meid, conv2ac.term, pvd.insegna
6. 0.000 0.000 ↓ 0.0

Hash Join (cost=216.12..301.37 rows=727 width=132) (actual rows= loops=)

  • Hash Cond: ((conv2ac.convid)::text = (conv.convid)::text)
7. 0.000 0.000 ↓ 0.0

Seq Scan on conv2ac (cost=0.00..69.80 rows=2,180 width=106) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Hash (cost=207.05..207.05 rows=726 width=34) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Hash Join (cost=92.85..207.05 rows=726 width=34) (actual rows= loops=)

  • Hash Cond: ((conv.posid)::bpchar = pos.posid)
10. 0.000 0.000 ↓ 0.0

Seq Scan on conv (cost=0.00..98.77 rows=2,177 width=13) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Hash (cost=88.31..88.31 rows=363 width=39) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash Join (cost=41.71..88.31 rows=363 width=39) (actual rows= loops=)

  • Hash Cond: (pos.pvdid = pvd.pvdid)
13. 0.000 0.000 ↓ 0.0

Seq Scan on pos (cost=0.00..38.89 rows=1,089 width=14) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Hash (cost=37.46..37.46 rows=340 width=35) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.05..37.46 rows=340 width=35) (actual rows= loops=)

  • Hash Cond: ((pvd.vndid)::text = (vnd.vndid)::text)
16. 0.000 0.000 ↓ 0.0

Seq Scan on pvd (cost=0.00..29.19 rows=1,019 width=37) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=1.04..1.04 rows=1 width=82) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Seq Scan on vnd (cost=0.00..1.04 rows=1 width=82) (actual rows= loops=)

  • Filter: (cod_eser = '1799485'::bpchar)
19. 0.000 0.000 ↓ 0.0

Sort (cost=3,433.49..3,504.29 rows=28,321 width=43) (actual rows= loops=)

  • Sort Key: b_1.card_acceptor_id, b_1.terminal_code
20. 0.000 0.000 ↓ 0.0

Seq Scan on etl_logunico_fin_notification b_1 (cost=0.00..1,339.21 rows=28,321 width=43) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Hash (cost=4,667.50..4,667.50 rows=514 width=36) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Merge Join (cost=4,299.76..4,667.50 rows=514 width=36) (actual rows= loops=)

  • Merge Cond: (((substring((a.meid)::text, 1, 7)) = (b.agente)::text) AND (a.term = (b.terminal_id)::bpchar))
23. 0.000 0.000 ↓ 0.0

Sort (cost=355.91..357.73 rows=727 width=102) (actual rows= loops=)

  • Sort Key: (substring((a.meid)::text, 1, 7)), a.term
24. 0.000 0.000 ↓ 0.0

Subquery Scan on a (cost=306.82..321.36 rows=727 width=102) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

HashAggregate (cost=306.82..314.09 rows=727 width=132) (actual rows= loops=)

  • Group Key: conv2ac_1.meid, conv2ac_1.term, pvd_1.insegna
26. 0.000 0.000 ↓ 0.0

Hash Join (cost=216.12..301.37 rows=727 width=132) (actual rows= loops=)

  • Hash Cond: ((conv2ac_1.convid)::text = (conv_1.convid)::text)
27. 0.000 0.000 ↓ 0.0

Seq Scan on conv2ac conv2ac_1 (cost=0.00..69.80 rows=2,180 width=106) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=207.05..207.05 rows=726 width=34) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Hash Join (cost=92.85..207.05 rows=726 width=34) (actual rows= loops=)

  • Hash Cond: ((conv_1.posid)::bpchar = pos_1.posid)
30. 0.000 0.000 ↓ 0.0

Seq Scan on conv conv_1 (cost=0.00..98.77 rows=2,177 width=13) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Hash (cost=88.31..88.31 rows=363 width=39) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Hash Join (cost=41.71..88.31 rows=363 width=39) (actual rows= loops=)

  • Hash Cond: (pos_1.pvdid = pvd_1.pvdid)
33. 0.000 0.000 ↓ 0.0

Seq Scan on pos pos_1 (cost=0.00..38.89 rows=1,089 width=14) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Hash (cost=37.46..37.46 rows=340 width=35) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.05..37.46 rows=340 width=35) (actual rows= loops=)

  • Hash Cond: ((pvd_1.vndid)::text = (vnd_1.vndid)::text)
36. 0.000 0.000 ↓ 0.0

Seq Scan on pvd pvd_1 (cost=0.00..29.19 rows=1,019 width=37) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Hash (cost=1.04..1.04 rows=1 width=82) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Seq Scan on vnd vnd_1 (cost=0.00..1.04 rows=1 width=82) (actual rows= loops=)

  • Filter: (cod_eser = '1799485'::bpchar)
39. 0.000 0.000 ↓ 0.0

Sort (cost=3,943.84..4,014.55 rows=28,281 width=36) (actual rows= loops=)

  • Sort Key: b.agente, b.terminal_id
40. 0.000 0.000 ↓ 0.0

Seq Scan on etl_postino b (cost=0.00..1,852.81 rows=28,281 width=36) (actual rows= loops=)