explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Zrf2

Settings

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 12.619 372.581 ↑ 1.0 1 1

Aggregate (cost=14,857.04..14,857.05 rows=1 width=8) (actual time=372.572..372.581 rows=1 loops=1)

2. 34.007 359.962 ↓ 1.2 79,739 1

Hash Join (cost=11,584.37..14,685.67 rows=68,548 width=0) (actual time=200.504..359.962 rows=79,739 loops=1)

  • Hash Cond: (web_joke_tags.joketag_id = web_joketag.id)
3. 74.891 325.822 ↑ 1.0 79,739 1

Hash Join (cost=11,578.19..14,454.61 rows=79,739 width=4) (actual time=200.289..325.822 rows=79,739 loops=1)

  • Hash Cond: (web_joke_tags.joke_id = web_joke.id)
4. 52.793 52.793 ↑ 1.0 159,478 1

Seq Scan on web_joke_tags (cost=0.00..2,457.78 rows=159,478 width=8) (actual time=0.055..52.793 rows=159,478 loops=1)

  • Filter: (joketag_id IS NOT NULL)
5. 42.870 198.138 ↑ 1.0 78,529 1

Hash (cost=10,596.58..10,596.58 rows=78,529 width=4) (actual time=198.136..198.138 rows=78,529 loops=1)

  • Buckets: 131,072 Batches: 1 Memory Usage: 3,785kB
6. 155.268 155.268 ↑ 1.0 78,529 1

Seq Scan on web_joke (cost=0.00..10,596.58 rows=78,529 width=4) (actual time=0.030..155.268 rows=78,529 loops=1)

  • Filter: (NOT is_duplicity)
  • Rows Removed by Filter: 78,529
7. 0.045 0.133 ↑ 1.0 49 1

Hash (cost=5.57..5.57 rows=49 width=4) (actual time=0.131..0.133 rows=49 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 10kB
8. 0.088 0.088 ↑ 1.0 49 1

Seq Scan on web_joketag (cost=0.00..5.57 rows=49 width=4) (actual time=0.027..0.088 rows=49 loops=1)

  • Filter: is_active
  • Rows Removed by Filter: 8