explain.depesz.com

PostgreSQL's explain analyze made readable

Result: XPsv

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

Unique (cost=19,743,648.89..19,939,185.85 rows=19,553,696 width=77) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=19,743,648.89..19,792,533.13 rows=19,553,696 width=77) (actual rows= loops=)

  • Sort Key: om.eic, tf.kod, et.bis DESC, et.inaktiv NULLS FIRST, et.time_delete DESC, et.ab DESC
3. 0.000 0.000 ↓ 0.0

Hash Join (cost=8,215,459.68..16,866,710.55 rows=19,553,696 width=77) (actual rows= loops=)

  • Hash Cond: ((et.anlage = om.com) AND (et.operand = (tf.kod)::text) AND (et.bis = et2.bis))
4. 0.000 0.000 ↓ 0.0

Seq Scan on u_ettifn et (cost=0.00..8,131,757.08 rows=24,450,882 width=45) (actual rows= loops=)

  • Filter: ((anlage IS NOT NULL) AND (operand = ANY ('{D1_T_MOB01,D1_M_IST02,D1_E_REK01,D1_E_MRK00,D1_M_IST01,D1_H_FAM01,D1_T_TAR01,D1_T_TYM01,D1_T_IMSTK,D1_F_PF001}'::text[])))
5. 0.000 0.000 ↓ 0.0

Hash (cost=8,210,441.45..8,210,441.45 rows=286,756 width=73) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8,154,203.99..8,210,441.45 rows=286,756 width=73) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Hash Join (cost=8,154,203.56..8,210,168.08 rows=113 width=40) (actual rows= loops=)

  • Hash Cond: (et2.operand = (tf.kod)::text)
8. 0.000 0.000 ↓ 0.0

Unique (cost=8,154,166.69..8,194,918.16 rows=3,615,027 width=22) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Sort (cost=8,154,166.69..8,164,354.56 rows=4,075,147 width=22) (actual rows= loops=)

  • Sort Key: et2.anlage, et2.operand, et2.bis
10. 0.000 0.000 ↓ 0.0

Gather (cost=1,000.00..7,657,797.83 rows=4,075,147 width=22) (actual rows= loops=)

  • Workers Planned: 2
11. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on u_ettifn et2 (cost=0.00..7,249,283.13 rows=1,697,978 width=22) (actual rows= loops=)

  • Filter: ((GREATEST(time_insert, time_update, time_delete) <= clock_timestamp()) AND COALESCE((GREATEST(time_insert, time_update, time_delete) > (clock_timestamp() - '100 days'::interval)), true) AND (operand = ANY ('{D1_T_MOB01,D1_M_IST02,D1_E_REK01,D1_E_MRK00,D1_M_IST01,D1_H_FAM01,D1_T_TAR01,D1_T_TYM01,D1_T_IMSTK,D1_F_PF001}'::text[])))
12. 0.000 0.000 ↓ 0.0

Hash (cost=26.94..26.94 rows=794 width=18) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on typ_faktu tf (cost=0.00..26.94 rows=794 width=18) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Scan using odberne_miesto_com_key on odberne_miesto om (cost=0.43..2.42 rows=1 width=33) (actual rows= loops=)

  • Index Cond: (com = et2.anlage)