explain.depesz.com

PostgreSQL's explain analyze made readable

Result: mFdZ

Settings
# exclusive inclusive rows x rows loops node
1. 0.006 8.605 ↑ 1.2 8 1

Nested Loop (cost=2,159.89..2,239.03 rows=10 width=321) (actual time=8.575..8.605 rows=8 loops=1)

2. 0.013 8.575 ↑ 1.2 8 1

Unique (cost=2,159.60..2,159.78 rows=10 width=305) (actual time=8.569..8.575 rows=8 loops=1)

3. 0.050 8.562 ↑ 1.2 8 1

Sort (cost=2,159.60..2,159.63 rows=10 width=305) (actual time=8.562..8.562 rows=8 loops=1)

  • Sort Key: pipeline_stage.display_name, pipelines.display_name, pipelines.pipeline_id, (count(pipelines.pipeline_id)), (max(processes_1.process_id))
  • Sort Method: quicksort Memory: 26kB
4. 0.359 8.512 ↑ 1.2 8 1

HashAggregate (cost=2,159.34..2,159.44 rows=10 width=305) (actual time=8.508..8.512 rows=8 loops=1)

  • Group Key: pipelines.pipeline_id, pipeline_stage.pipeline_stage_id
5. 0.376 8.153 ↓ 3.5 756 1

Hash Join (cost=217.58..2,157.21 rows=213 width=305) (actual time=0.316..8.153 rows=756 loops=1)

  • Hash Cond: (process_fields.field_id = fields.field_id)
6. 0.352 7.732 ↓ 3.5 756 1

Nested Loop (cost=210.32..2,147.02 rows=213 width=309) (actual time=0.265..7.732 rows=756 loops=1)

  • Join Filter: (processes_1.process_id = process_fields.process_id)
7. 0.056 6.832 ↑ 1.1 137 1

Nested Loop (cost=210.03..2,080.28 rows=144 width=309) (actual time=0.255..6.832 rows=137 loops=1)

8. 0.007 0.007 ↑ 1.0 1 1

Index Scan using pk_pypeline_stage on pipeline_stage (cost=0.14..8.16 rows=1 width=278) (actual time=0.007..0.007 rows=1 loops=1)

  • Index Cond: (pipeline_stage_id = 1)
9. 0.555 6.769 ↑ 1.1 137 1

Nested Loop (cost=209.88..2,070.68 rows=144 width=31) (actual time=0.245..6.769 rows=137 loops=1)

10. 2.136 4.264 ↑ 1.1 650 1

Hash Join (cost=209.60..413.63 rows=708 width=27) (actual time=0.198..4.264 rows=650 loops=1)

  • Hash Cond: (process_pipeline.pipeline_id = pipelines.pipeline_id)
11. 1.942 1.942 ↓ 1.0 8,725 1

Seq Scan on process_pipeline (cost=0.00..165.60 rows=8,360 width=8) (actual time=0.005..1.942 rows=8,725 loops=1)

12. 0.004 0.186 ↑ 1.0 10 1

Hash (cost=209.47..209.47 rows=10 width=23) (actual time=0.186..0.186 rows=10 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
13. 0.182 0.182 ↑ 1.0 10 1

Seq Scan on pipelines (cost=0.00..209.47 rows=10 width=23) (actual time=0.015..0.182 rows=10 loops=1)

  • Filter: (pipeline_stage_id = 1)
  • Rows Removed by Filter: 108
14. 1.950 1.950 ↓ 0.0 0 650

Index Scan using pkprocesses on processes processes_1 (cost=0.29..2.33 rows=1 width=4) (actual time=0.003..0.003 rows=0 loops=650)

  • Index Cond: (process_id = process_pipeline.process_id)
  • Filter: ((NOT flag_removed) AND ((instance)::text = 'testing'::text))
  • Rows Removed by Filter: 1
15. 0.548 0.548 ↓ 1.5 6 137

Index Only Scan using process_fields_process_id_key on process_fields (cost=0.29..0.41 rows=4 width=8) (actual time=0.002..0.004 rows=6 loops=137)

  • Index Cond: (process_id = process_pipeline.process_id)
  • Heap Fetches: 244
16. 0.015 0.045 ↑ 1.0 54 1

Hash (cost=6.56..6.56 rows=56 width=4) (actual time=0.045..0.045 rows=54 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 2kB
17. 0.030 0.030 ↑ 1.0 54 1

Seq Scan on fields (cost=0.00..6.56 rows=56 width=4) (actual time=0.008..0.030 rows=54 loops=1)

18. 0.024 0.024 ↑ 1.0 1 8

Index Scan using pkprocesses on processes (cost=0.29..7.91 rows=1 width=20) (actual time=0.002..0.003 rows=1 loops=8)

  • Index Cond: (process_id = (max(processes_1.process_id)))