explain.depesz.com

PostgreSQL's explain analyze made readable

Result: g8kS

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

Sort (cost=15,682.74..15,683.24 rows=200 width=72) (actual rows= loops=)

  • Sort Key: u.created_datetime DESC, ugg.user_id, ugg.grant_group_id
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=15,137.26..15,675.09 rows=200 width=72) (actual rows= loops=)

  • Hash Cond: (ugg.grant_group_id = gg.id)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15,103.86..15,641.17 rows=200 width=56) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Limit (cost=15,103.43..15,126.77 rows=200 width=24) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Gather Merge (cost=15,103.43..16,232.85 rows=9,680 width=24) (actual rows= loops=)

  • Workers Planned: 2
6. 0.000 0.000 ↓ 0.0

Sort (cost=14,103.41..14,115.51 rows=4,840 width=24) (actual rows= loops=)

  • Sort Key: u.created_datetime DESC, u.id
7. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on "user" u (cost=0.00..13,894.23 rows=4,840 width=24) (actual rows= loops=)

  • Filter: ((NOT deleted) AND (user_type = 'Backoffice'::text))
8. 0.000 0.000 ↓ 0.0

Index Scan using "IX_user_grant_group_user_id" on user_grant_group ugg (cost=0.42..2.55 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (user_id = u.id)
9. 0.000 0.000 ↓ 0.0

Hash (cost=20.40..20.40 rows=1,040 width=16) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on grant_group gg (cost=0.00..20.40 rows=1,040 width=16) (actual rows= loops=)