explain.depesz.com

PostgreSQL's explain analyze made readable

Result: cnyw : Removing the self join

Settings
# exclusive inclusive rows x rows loops node
1. 5,337.586 6,183.437 ↓ 0.0 0 1

Update on packages_raw pr (cost=3,081.65..12,658.10 rows=21,940 width=109) (actual time=6,183.437..6,183.437 rows=0 loops=1)

2. 334.411 845.851 ↓ 1.8 38,905 1

Hash Join (cost=3,081.65..12,658.10 rows=21,940 width=109) (actual time=418.091..845.851 rows=38,905 loops=1)

  • Hash Cond: (pr.package_origin = po.port_origin)
3. 12.257 268.378 ↓ 1.9 30,492 1

Nested Loop (cost=989.00..9,048.43 rows=16,056 width=87) (actual time=174.079..268.378 rows=30,492 loops=1)

4. 0.036 0.036 ↑ 1.0 1 1

Seq Scan on abi (cost=0.00..1.04 rows=1 width=42) (actual time=0.030..0.036 rows=1 loops=1)

  • Filter: (name = 'FreeBSD:13:i386'::text)
  • Rows Removed by Filter: 8
5. 82.627 256.085 ↓ 1.9 30,492 1

Bitmap Heap Scan on packages_raw pr (cost=989.00..8,886.84 rows=16,056 width=77) (actual time=174.032..256.085 rows=30,492 loops=1)

  • Recheck Cond: ((abi = 'FreeBSD:13:i386'::text) AND (package_set = 'latest'::package_sets))
  • Heap Blocks: exact=416
6. 173.458 173.458 ↓ 7.6 121,903 1

Bitmap Index Scan on packages_raw_abi_package_set_idx (cost=0.00..984.98 rows=16,056 width=0) (actual time=173.458..173.458 rows=121,903 loops=1)

  • Index Cond: ((abi = 'FreeBSD:13:i386'::text) AND (package_set = 'latest'::package_sets))
7. 47.608 243.062 ↑ 1.0 57,807 1

Hash (cost=974.07..974.07 rows=57,807 width=30) (actual time=243.062..243.062 rows=57,807 loops=1)

  • Buckets: 16,384 Batches: 8 Memory Usage: 576kB
8. 195.454 195.454 ↑ 1.0 57,807 1

Seq Scan on ports_origin po (cost=0.00..974.07 rows=57,807 width=30) (actual time=0.451..195.454 rows=57,807 loops=1)

Planning time : 2.922 ms
Execution time : 6,186.449 ms