explain.depesz.com

PostgreSQL's explain analyze made readable

Result: kQJB

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

Hash Left Join (cost=32.86..138.07 rows=136 width=321) (actual rows= loops=)

  • Hash Cond: ((att.attnum = constraint_subquery.column_id) AND (c.relname = constraint_subquery."table") AND (ns.nspname = constraint_subquery.schema))
2. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=19.10..119.72 rows=136 width=264) (actual rows= loops=)

  • Hash Cond: (att.atttypid = t.oid)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.40..101.65 rows=136 width=199) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.11..17.70 rows=23 width=132) (actual rows= loops=)

  • Hash Cond: (c.relnamespace = ns.oid)
5. 0.000 0.000 ↓ 0.0

Seq Scan on pg_class c (cost=0.00..16.27 rows=69 width=72) (actual rows= loops=)

  • Filter: (relkind = 'r'::"char")
6. 0.000 0.000 ↓ 0.0

Hash (cost=1.09..1.09 rows=2 width=68) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Seq Scan on pg_namespace ns (cost=0.00..1.09 rows=2 width=68) (actual rows= loops=)

  • Filter: ((nspname !~~ 'information_schema'::text) AND (nspname !~~ 'pg\_%'::text))
8. 0.000 0.000 ↓ 0.0

Index Scan using pg_attribute_relid_attnum_index on pg_attribute att (cost=0.28..3.59 rows=6 width=75) (actual rows= loops=)

  • Index Cond: ((attrelid = c.oid) AND (attnum > 0))
9. 0.000 0.000 ↓ 0.0

Hash (cost=12.87..12.87 rows=387 width=69) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on pg_type t (cost=0.00..12.87 rows=387 width=69) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Hash (cost=12.00..12.00 rows=100 width=130) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Subquery Scan on constraint_subquery (cost=0.27..12.00 rows=100 width=130) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

ProjectSet (cost=0.27..11.00 rows=100 width=130) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.27..10.50 rows=1 width=160) (actual rows= loops=)

  • Join Filter: (con.connamespace = ns_1.oid)
15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.27..9.36 rows=1 width=100) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Seq Scan on pg_constraint con (cost=0.00..1.02 rows=1 width=40) (actual rows= loops=)

  • Filter: (contype = ANY ('{p,f}'::"char"[]))
17. 0.000 0.000 ↓ 0.0

Index Scan using pg_class_oid_index on pg_class t_1 (cost=0.27..8.29 rows=1 width=68) (actual rows= loops=)

  • Index Cond: (oid = con.conrelid)
18. 0.000 0.000 ↓ 0.0

Seq Scan on pg_namespace ns_1 (cost=0.00..1.06 rows=6 width=68) (actual rows= loops=)