explain.depesz.com

PostgreSQL's explain analyze made readable

Result: F4CE

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

Subquery Scan on ddl_data (cost=3.18..153.55 rows=1 width=288) (actual rows= loops=)

  • Filter: (ddl_data.table_name = 'tes1'::name)
2. 0.000 0.000 ↓ 0.0

Append (cost=3.18..151.64 rows=153 width=288) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Hash Join (cost=3.18..22.45 rows=1 width=288) (actual rows= loops=)

  • Hash Cond: (pg_class.oid = pg_constraint.conrelid)
4. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.09..19.81 rows=66 width=132) (actual rows= loops=)

  • Hash Cond: (pg_class.relnamespace = pg_namespace.oid)
5. 0.000 0.000 ↓ 0.0

Seq Scan on pg_class (cost=0.00..16.95 rows=395 width=72) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Hash (cost=1.07..1.07 rows=1 width=68) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Seq Scan on pg_namespace (cost=0.00..1.07 rows=1 width=68) (actual rows= loops=)

  • Filter: (nspname = 'public'::name)
8. 0.000 0.000 ↓ 0.0

Hash (cost=2.04..2.04 rows=4 width=72) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Seq Scan on pg_constraint (cost=0.00..2.04 rows=4 width=72) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 2 (cost=1.37..98.39 rows=150 width=288) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.37..96.52 rows=150 width=256) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.09..19.81 rows=66 width=68) (actual rows= loops=)

  • Hash Cond: (cl.relnamespace = ns.oid)
13. 0.000 0.000 ↓ 0.0

Seq Scan on pg_class cl (cost=0.00..16.95 rows=395 width=8) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Hash (cost=1.07..1.07 rows=1 width=68) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

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

  • Filter: (nspname = 'public'::name)
16. 0.000 0.000 ↓ 0.0

Index Scan using pg_attribute_relid_attnum_index on pg_attribute a (cost=0.28..1.07 rows=2 width=68) (actual rows= loops=)

  • Index Cond: ((attrelid = cl.oid) AND (attnum > 0))
  • Filter: ((NOT attisdropped) AND attnotnull)
17. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 3 (cost=1.50..30.02 rows=2 width=288) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.50..30.00 rows=2 width=288) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.23..26.35 rows=5 width=132) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.09..19.84 rows=12 width=132) (actual rows= loops=)

  • Hash Cond: (c.relnamespace = n.oid)
21. 0.000 0.000 ↓ 0.0

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

  • Filter: (relkind = ANY ('{r,m,p}'::"char"[]))
22. 0.000 0.000 ↓ 0.0

Hash (cost=1.07..1.07 rows=1 width=68) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Seq Scan on pg_namespace n (cost=0.00..1.07 rows=1 width=68) (actual rows= loops=)

  • Filter: (nspname = 'public'::name)
24. 0.000 0.000 ↓ 0.0

Index Scan using pg_index_indrelid_index on pg_index x (cost=0.14..0.52 rows=2 width=8) (actual rows= loops=)

  • Index Cond: (indrelid = c.oid)
25. 0.000 0.000 ↓ 0.0

Index Scan using pg_class_oid_index on pg_class i (cost=0.27..0.72 rows=1 width=72) (actual rows= loops=)

  • Index Cond: (oid = x.indexrelid)
  • Filter: (relkind = ANY ('{i,I}'::"char"[]))