explain.depesz.com

PostgreSQL's explain analyze made readable

Result: GDMP

Settings
# exclusive inclusive rows x rows loops node
1. 0.002 1,959.876 ↑ 1.0 1 1

Limit (cost=27,999.50..27,999.50 rows=1 width=4) (actual time=1,959.876..1,959.876 rows=1 loops=1)

  • Buffers: shared hit=35,611 read=12,638
  • I/O Timings: read=1,814.703
2. 0.203 1,959.874 ↑ 2.0 1 1

Sort (cost=27,999.50..27,999.51 rows=2 width=4) (actual time=1,959.874..1,959.874 rows=1 loops=1)

  • Sort Key: ci_pipelines.id DESC
  • Sort Method: top-N heapsort Memory: 25kB
  • Buffers: shared hit=35,611 read=12,638
  • I/O Timings: read=1,814.703
3. 0.300 1,959.671 ↓ 41.0 82 1

Nested Loop Semi Join (cost=9.71..27,999.49 rows=2 width=4) (actual time=5.945..1,959.671 rows=82 loops=1)

  • Buffers: shared hit=35,611 read=12,638
  • I/O Timings: read=1,814.703
4. 0.307 25.571 ↑ 1.0 100 1

Nested Loop (cost=8.43..222.11 rows=100 width=8) (actual time=2.380..25.571 rows=100 loops=1)

  • Buffers: shared hit=522 read=80
  • I/O Timings: read=21.426
5. 0.234 1.864 ↑ 1.0 100 1

HashAggregate (cost=7.86..8.86 rows=100 width=4) (actual time=1.663..1.864 rows=100 loops=1)

  • Group Key: ci_pipelines_1.id
  • Buffers: shared hit=67 read=4
  • I/O Timings: read=1.015
6. 1.630 1.630 ↑ 1.0 100 1

Limit (cost=0.57..6.61 rows=100 width=4) (actual time=1.071..1.630 rows=100 loops=1)

  • Buffers: shared hit=67 read=4
  • I/O Timings: read=1.015
  • -> Index Only Scan Backward using index_ci_pipelines_on_project_id_and_ref_and_status_and_id on ci_pipelines ci_pipelines_1 (cost=0.57..2900.88 rows=47,996 width=4) (actual time
  • Index Cond: ((project_id = 13,083) AND (ref = 'master'::text) AND (status = 'success'::text))
  • Heap Fetches: 47
  • Buffers: shared hit=67 read=4
  • I/O Timings: read=1.015
7. 23.400 23.400 ↑ 1.0 1 100

Index Only Scan using ci_pipelines_pkey on ci_pipelines (cost=0.57..2.13 rows=1 width=4) (actual time=0.234..0.234 rows=1 loops=100)

  • Index Cond: (id = ci_pipelines_1.id)
  • Heap Fetches: 43
  • Buffers: shared hit=455 read=76
  • I/O Timings: read=20.412
8. 2.153 1,933.800 ↑ 1.0 1 100

Nested Loop Semi Join (cost=1.27..277.76 rows=1 width=4) (actual time=19.338..19.338 rows=1 loops=100)

  • Buffers: shared hit=35,089 read=12,558
  • I/O Timings: read=1,793.277
9. 1,528.900 1,528.900 ↑ 1.6 76 100

Index Scan using index_ci_builds_on_commit_id_and_status_and_type on ci_builds (cost=0.70..71.53 rows=120 width=8) (actual time=0.735..15.289 rows=76 loops=100)

  • Index Cond: ((commit_id = ci_pipelines.id) AND ((type)::text = 'Ci::Build'::text))
  • Filter: ((retried IS FALSE) OR (retried IS NULL))
  • Rows Removed by Filter: 0
  • Buffers: shared hit=2,003 read=6,798
  • I/O Timings: read=1,470.741
10. 402.747 402.747 ↓ 0.0 0 7,599

Index Only Scan using index_ci_job_artifacts_on_job_id_and_file_type on ci_job_artifacts (cost=0.57..1.72 rows=1 width=4) (actual time=0.053..0.053 rows=0 loops=7,599)

  • Index Cond: (job_id = ci_builds.id)
  • Filter: (file_type = ANY ('{5,6,7,8,21,23}'::integer[]))
  • Rows Removed by Filter: 3
  • Heap Fetches: 10,340
  • Buffers: shared hit=33,086 read=5,760
  • I/O Timings: read=322.536
Planning time : 8.996 ms
Execution time : 1,959.998 ms