explain.depesz.com

PostgreSQL's explain analyze made readable

Result: aE3A

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

Hash Join (cost=19.74..955.64 rows=1,341 width=1,248) (actual rows= loops=)

  • Hash Cond: (o_1.status_pk = mod_status_1.status_pk)
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=17.21..949.37 rows=1,341 width=1,220) (actual rows= loops=)

  • Hash Cond: (o_1.object_type_pk = ot_1.object_type_pk)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.68..938.09 rows=1,341 width=1,169) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Hash Join (cost=9.39..684.56 rows=139 width=624) (actual rows= loops=)

  • Hash Cond: (o.status_pk = mod_status.status_pk)
5. 0.000 0.000 ↓ 0.0

Hash Join (cost=6.86..681.64 rows=139 width=596) (actual rows= loops=)

  • Hash Cond: (o.object_type_pk = ot.object_type_pk)
6. 0.000 0.000 ↓ 0.0

Seq Scan on mod_object o (cost=0.00..648.44 rows=9,444 width=545) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Hash (cost=6.85..6.85 rows=1 width=59) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Seq Scan on mod_object_type ot (cost=0.00..6.85 rows=1 width=59) (actual rows= loops=)

  • Filter: ((object_type_code)::text = 'PROJECT'::text)
9. 0.000 0.000 ↓ 0.0

Hash (cost=1.68..1.68 rows=68 width=36) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on mod_status (cost=0.00..1.68 rows=68 width=36) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using test_idx_object_pk_str on mod_object o_1 (cost=0.29..1.35 rows=47 width=545) (actual rows= loops=)

  • Index Cond: (((object_pk)::character varying)::text = (o.header_attr_code_2)::text)
12. 0.000 0.000 ↓ 0.0

Hash (cost=6.68..6.68 rows=68 width=59) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on mod_object_type ot_1 (cost=0.00..6.68 rows=68 width=59) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Hash (cost=1.68..1.68 rows=68 width=36) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Seq Scan on mod_status mod_status_1 (cost=0.00..1.68 rows=68 width=36) (actual rows= loops=)