explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ylCc : FreshPorts: packages INSERT

Settings
# exclusive inclusive rows x rows loops node
1. 27.373 341.050 ↓ 0.0 0 1

Insert on packages (cost=480.76..28,278.42 rows=15,908 width=58) (actual time=341.049..341.050 rows=0 loops=1)

  • Buffers: shared hit=133908 read=1 dirtied=828 written=9
  • I/O Timings: read=0.048
2. 45.733 313.677 ↑ 31.6 503 1

Nested Loop Anti Join (cost=480.76..28,278.42 rows=15,908 width=58) (actual time=21.860..313.677 rows=503 loops=1)

  • Join Filter: ((pr.abi = 'FreeBSD:13:amd64'::text) AND (pr.package_set = 'latest'::package_sets))
  • Buffers: shared hit=127747 dirtied=24
3. 31.909 48.263 ↓ 1.9 31,383 1

Bitmap Heap Scan on packages_raw pr (cost=480.34..11,899.98 rows=16,541 width=51) (actual time=16.643..48.263 rows=31,383 loops=1)

  • Recheck Cond: ((abi = 'FreeBSD:13:amd64'::text) AND (package_set = 'latest'::package_sets))
  • Filter: ((abi_id IS NOT NULL) AND (port_id IS NOT NULL))
  • Rows Removed by Filter: 18
  • Heap Blocks: exact=530
  • Buffers: shared hit=1668
4. 16.354 16.354 ↓ 3.3 62,784 1

Bitmap Index Scan on packages_raw_abi_package_set_idx (cost=0.00..476.20 rows=19,088 width=0) (actual time=16.354..16.354 rows=62,784 loops=1)

  • Index Cond: ((abi = 'FreeBSD:13:amd64'::text) AND (package_set = 'latest'::package_sets))
  • Buffers: shared hit=773
5. 219.681 219.681 ↑ 1.0 1 31,383

Index Only Scan using packages_all_idx on packages p (cost=0.42..0.97 rows=1 width=29) (actual time=0.007..0.007 rows=1 loops=31,383)

  • Index Cond: ((abi_id = pr.abi_id) AND (package_name = pr.package_name) AND (package_set = pr.package_set) AND (package_set = 'latest'::package_sets))
  • Filter: (package_version = pr.package_version)
  • Rows Removed by Filter: 0
  • Heap Fetches: 31450
  • Buffers: shared hit=125576 dirtied=24
Planning time : 1.607 ms
Execution time : 341.237 ms