explain.depesz.com

PostgreSQL's explain analyze made readable

Result: XZIx

Settings
# exclusive inclusive rows x rows loops node
1. 134.127 2,292.136 ↓ 0.0 0 1

Nested Loop Semi Join (cost=16,217.21..32,947.52 rows=1 width=4) (actual time=2,292.136..2,292.136 rows=0 loops=1)

  • Buffers: shared hit=88,694 read=1,886 dirtied=32
  • I/O Timings: read=1,700.674
2. 129.176 2,158.009 ↓ 4,461.6 249,851 1

Index Only Scan using i4 on public.ci_job_artifacts (cost=16,216.63..32,822.15 rows=56 width=8) (actual time=2,029.810..2,158.009 rows=249,851 loops=1)

  • Heap Fetches: 23,946
  • Filter: (NOT (hashed SubPlan 1))
  • Rows Removed by Filter: 1,000
  • Buffers: shared hit=88,694 read=1,886 dirtied=32
  • I/O Timings: read=1,700.674
3.          

SubPlan (for Index Only Scan)

4. 0.571 2,028.833 ↓ 1,000.0 1,000 1

Aggregate (cost=16,216.19..16,216.21 rows=1 width=8) (actual time=2,028.159..2,028.833 rows=1,000 loops=1)

  • Group Key: ci_job_artifacts_2.job_id
  • Buffers: shared hit=45,493 read=1,883 dirtied=32
  • I/O Timings: read=1,700.537
5. 1.926 2,028.262 ↓ 1,000.0 1,000 1

Sort (cost=16,216.19..16,216.20 rows=1 width=8) (actual time=2,028.149..2,028.262 rows=1,000 loops=1)

  • Sort Key: ci_job_artifacts_2.job_id
  • Sort Method: quicksort Memory: 71kB
  • Buffers: shared hit=45,493 read=1,883 dirtied=32
  • I/O Timings: read=1,700.537
6. 72.538 2,026.336 ↓ 1,000.0 1,000 1

Nested Loop Semi Join (cost=0.99..16,216.18 rows=1 width=8) (actual time=8.065..2,026.336 rows=1,000 loops=1)

  • Buffers: shared hit=45,493 read=1,883 dirtied=32
  • I/O Timings: read=1,700.537
7. 197.841 197.841 ↓ 2,219.9 250,851 1

Index Only Scan using i4 on public.ci_job_artifacts ci_job_artifacts_2 (cost=0.42..15,966.48 rows=113 width=8) (actual time=0.017..197.841 rows=250,851 loops=1)

  • Heap Fetches: 23,946
  • Buffers: shared hit=42,519 read=685
  • I/O Timings: read=23.714
8. 1,755.957 1,755.957 ↓ 0.0 0 250,851

Index Only Scan using index_ci_job_artifacts_on_job_id_and_file_type on public.ci_job_artifacts ci_job_artifacts_3 (cost=0.57..2.20 rows=1 width=4) (actual time=0.007..0.007 rows=0 loops=250,851)

  • Index Cond: ((ci_job_artifacts_3.job_id = ci_job_artifacts_2.job_id) AND (ci_job_artifacts_3.job_id >= 121,896,538) AND (ci_job_artifacts_3.job_id < 156158378))
  • Heap Fetches: 54
  • Filter: ((ci_job_artifacts_3.file_type = 10) OR (ci_job_artifacts_3.file_type = 101))
  • Rows Removed by Filter: 0
  • Buffers: shared hit=2,974 read=1,198 dirtied=32
  • I/O Timings: read=1,676.824
9. 0.000 0.000 ↓ 0.0 0 249,851

Index Only Scan using index_ci_job_artifacts_on_job_id_and_file_type on public.ci_job_artifacts ci_job_artifacts_1 (cost=0.57..2.21 rows=1 width=4) (actual time=0.000..0.000 rows=0 loops=249,851)

  • Index Cond: ((ci_job_artifacts_1.job_id = ci_job_artifacts.job_id) AND (ci_job_artifacts_1.job_id >= 121,896,538) AND (ci_job_artifacts_1.job_id < 156158378))
  • Heap Fetches: 0
  • Filter: ((ci_job_artifacts_1.file_type = 10) OR (ci_job_artifacts_1.file_type = 101))
  • Rows Removed by Filter: 0