explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 2w2x

Settings
# exclusive inclusive rows x rows loops node
1. 0.054 28,335.224 ↑ 1.0 200 1

Limit (cost=154,281.00..31,010,433.69 rows=200 width=1,632) (actual time=62.049..28,335.224 rows=200 loops=1)

  • Buffers: shared hit=343,010 read=2
2. 1.091 28,335.170 ↑ 2,670.2 200 1

Nested Loop Left Join (cost=154,281.00..82,391,636,071.44 rows=534,036 width=1,632) (actual time=62.048..28,335.170 rows=200 loops=1)

  • Buffers: shared hit=343,010 read=2
3. 0.279 0.279 ↑ 2,670.2 200 1

Seq Scan on t_person_dim pd (cost=0.00..11,934.36 rows=534,036 width=64) (actual time=0.021..0.279 rows=200 loops=1)

  • Buffers: shared hit=1 read=2
4. 26,734.400 28,333.800 ↑ 1.0 1 200

Aggregate (cost=154,281.00..154,281.01 rows=1 width=1,600) (actual time=141.669..141.669 rows=1 loops=200)

  • Buffers: shared hit=343,009
5. 1,599.400 1,599.400 ↓ 14.3 1,088 200

Index Scan using "mdl_engage_actions_table_p1_yaddr_v4$idx2" on mdl_engage_actions_table_p1_yaddr_v4 s (cost=0.67..2,214.38 rows=76 width=45) (actual time=0.118..7.997 rows=1,088 loops=200)

  • Index Cond: ((geog && _st_expand(pd.geog, '4000'::double precision)) AND (activity_date > (now() - '2 years'::interval)) AND (person_uuid <> pd.person_uuid))
  • Filter: st_dwithin(geog, pd.geog, '4000'::double precision, true)
  • Rows Removed by Filter: 544
  • Buffers: shared hit=342,649
Planning time : 3.646 ms
Execution time : 28,336.786 ms