explain.depesz.com

PostgreSQL's explain analyze made readable

Result: AOFX

Settings
# exclusive inclusive rows x rows loops node
1. 1.577 12.371 ↓ 82.2 411 1

Nested Loop Left Join (cost=122.84..151.32 rows=5 width=401) (actual time=8.624..12.371 rows=411 loops=1)

  • Buffers: shared hit=904
2. 0.889 9.561 ↓ 82.2 411 1

Hash Join (cost=122.70..150.00 rows=5 width=475) (actual time=8.539..9.561 rows=411 loops=1)

  • Hash Cond: ((s.starelid = c.oid) AND (s.staattnum = a.attnum))
  • Buffers: shared hit=82
3. 0.186 0.186 ↑ 1.0 411 1

Seq Scan on pg_statistic s (cost=0.00..22.11 rows=411 width=349) (actual time=0.019..0.186 rows=411 loops=1)

  • Buffers: shared hit=18
4. 2.596 8.486 ↓ 3.0 2,795 1

Hash (cost=108.84..108.84 rows=924 width=142) (actual time=8.486..8.486 rows=2,795 loops=1)

  • Buckets: 4096 (originally 1024) Batches: 1 (originally 1) Memory Usage: 507kB
  • Buffers: shared hit=64
5. 3.735 5.890 ↓ 3.0 2,795 1

Hash Join (cost=21.15..108.84 rows=924 width=142) (actual time=0.567..5.890 rows=2,795 loops=1)

  • Hash Cond: (a.attrelid = c.oid)
  • Join Filter: has_column_privilege(c.oid, a.attnum, 'select'::text)
  • Buffers: shared hit=64
6. 1.652 1.652 ↑ 1.0 2,795 1

Seq Scan on pg_attribute a (cost=0.00..80.24 rows=2,824 width=70) (actual time=0.011..1.652 rows=2,795 loops=1)

  • Filter: (NOT attisdropped)
  • Buffers: shared hit=52
7. 0.201 0.503 ↓ 1.0 375 1

Hash (cost=16.57..16.57 rows=366 width=72) (actual time=0.502..0.503 rows=375 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 47kB
  • Buffers: shared hit=12
8. 0.302 0.302 ↓ 1.0 375 1

Seq Scan on pg_class c (cost=0.00..16.57 rows=366 width=72) (actual time=0.016..0.302 rows=375 loops=1)

  • Filter: ((NOT relrowsecurity) OR (NOT row_security_active(oid)))
  • Buffers: shared hit=12
9. 1.233 1.233 ↑ 1.0 1 411

Index Scan using pg_namespace_oid_index on pg_namespace n (cost=0.13..0.18 rows=1 width=68) (actual time=0.003..0.003 rows=1 loops=411)

  • Index Cond: (oid = c.relnamespace)
  • Buffers: shared hit=822