explain.depesz.com

PostgreSQL's explain analyze made readable

Result: AdtL

Settings
# exclusive inclusive rows x rows loops node
1. 959.246 1,917.292 ↑ 1.0 50 1

Limit (cost=251,534.69..255,633.53 rows=50 width=3,859) (actual time=950.932..1,917.292 rows=50 loops=1)

2. 0.000 958.046 ↑ 41,460.2 50 1

Nested Loop Left Join (cost=251,534.69..170,190,011.46 rows=2,073,008 width=3,859) (actual time=950.931..958.046 rows=50 loops=1)

3. 434.523 1,916.936 ↑ 41,460.2 50 1

Gather (cost=251,534.39..169,525,787.60 rows=2,073,008 width=3,851) (actual time=950.919..1,916.936 rows=50 loops=1)

  • Workers Planned: 8
  • Workers Launched: 8
4. 6.451 1,482.413 ↑ 43,187.7 6 9 / 9

Hash Left Join (cost=250,534.39..169,317,486.80 rows=259,126 width=3,851) (actual time=1,481.663..1,482.413 rows=6 loops=9)

  • Hash Cond: (u.id = ((de.dataj ->> 'id'::text))::integer)
5. 0.871 0.871 ↑ 10,796.9 24 9 / 9

Parallel Seq Scan on users u (cost=0.00..3,170,407.16 rows=259,126 width=3,851) (actual time=0.140..0.871 rows=24 loops=9)

  • Filter: (("migratedAt" IS NULL) OR ("migratedAt" <= "updatedAt"))
  • Rows Removed by Filter: 158
6. 123.237 1,475.091 ↑ 255,692.4 5 9 / 9

Hash (cost=225,813.62..225,813.62 rows=1,278,462 width=32) (actual time=1,475.091..1,475.091 rows=5 loops=9)

  • Buckets: 1048576 Batches: 4 Memory Usage: 8193kB
7. 1,351.854 1,351.854 ↑ 1.0 1,276,662 9 / 9

Seq Scan on "deletedUsers" de (cost=0.00..225,813.62 rows=1,278,462 width=32) (actual time=0.043..1,351.854 rows=1,276,662 loops=9)

8. 0.300 0.300 ↓ 0.0 0 50

Index Scan using user_groups_user_id on "userGroups" ug (cost=0.29..0.31 rows=1 width=12) (actual time=0.006..0.006 rows=0 loops=50)

  • Index Cond: (u.id = "userId")
Planning time : 1.019 ms
Execution time : 1,917.830 ms