explain.depesz.com

PostgreSQL's explain analyze made readable

Result: WesA

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 88,195.858 ↑ 1.0 1 1

Limit (cost=1,001.87..10,324.78 rows=1 width=4) (actual time=88,195.858..88,195.858 rows=1 loops=1)

2. 428.394 88,453.329 ↑ 1,143.0 1 1

Gather Merge (cost=1,001.87..10,657,095.01 rows=1,143 width=4) (actual time=88,195.853..88,453.329 rows=1 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 86.688 88,024.935 ↑ 476.0 1 3 / 3

Nested Loop Semi Join (cost=1.84..10,655,963.06 rows=476 width=4) (actual time=88,024.935..88,024.935 rows=1 loops=3)

  • -> Parallel Index Only Scan Backward using index_ci_pipelines_on_project_id_and_ref_and_status_and_id on ci_pipelines (cost=0.57..6297.13 rows=31,899 width=4) (actual time=0.110..78.077 rows=6,999
  • Index Cond: ((project_id = 7,764) AND (ref = 'master'::text) AND (status = 'success'::text))
  • Heap Fetches: 1,190
4. 190.395 87,938.247 ↓ 0.0 0 20,996 / 3

Nested Loop Semi Join (cost=1.27..333.85 rows=1 width=4) (actual time=12.565..12.565 rows=0 loops=20,996)

5. 78,168.108 78,168.108 ↑ 7.9 15 20,996 / 3

Index Scan using index_ci_builds_on_commit_id_and_status_and_type on ci_builds (cost=0.70..105.48 rows=118 width=8) (actual time=1.794..11.169 rows=15 loops=20,996)

  • 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
6. 9,579.744 9,579.744 ↓ 0.0 0 309,024 / 3

Index Only Scan using index_ci_job_artifacts_on_job_id_and_file_type on ci_job_artifacts (cost=0.57..1.92 rows=1 width=4) (actual time=0.093..0.093 rows=0 loops=309,024)

  • Index Cond: (job_id = ci_builds.id)
  • Filter: (file_type = ANY ('{5,6,7,8,21,23}'::integer[]))
  • Rows Removed by Filter: 2
  • Heap Fetches: 55,356
Planning time : 1.513 ms
Execution time : 88,453.433 ms