explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 9J8m : NAC from_collapse_limit=12

Settings
# exclusive inclusive rows x rows loops node
1. 0.093 80.191 ↓ 62.0 62 1

HashAggregate (cost=32.33..32.34 rows=1 width=35) (actual time=80.184..80.191 rows=62 loops=1)

  • Output: p2.lobj_name, p1.commentushort, l0.lobj_id
  • Group Key: p2.lobj_name, p1.commentushort, l0.lobj_id
  • Buffers: shared hit=49490 dirtied=2
2. 0.067 80.098 ↓ 62.0 62 1

Nested Loop (cost=10.33..32.32 rows=1 width=35) (actual time=60.749..80.098 rows=62 loops=1)

  • Output: p2.lobj_name, p1.commentushort, l0.lobj_id
  • Buffers: shared hit=49490 dirtied=2
3. 0.054 79.721 ↓ 62.0 62 1

Nested Loop (cost=10.05..31.91 rows=1 width=43) (actual time=60.708..79.721 rows=62 loops=1)

  • Output: l0.lobj_id, p1.commentushort, p2.lobj_name, ln1_2.parentlobj_id
  • Buffers: shared hit=49304 dirtied=2
4. 3.206 79.543 ↓ 62.0 62 1

Nested Loop (cost=9.91..31.42 rows=1 width=59) (actual time=60.677..79.543 rows=62 loops=1)

  • Output: l0.lobj_id, p1.commentushort, ln1_1.parentlobj_id, ln2.childlobj_id, p2.lobj_name, ln1_2.parentlobj_id
  • Join Filter: ((l0.lobj_id = ln1_1.childlobj_id) AND (ln2.childlobj_id = ln1_1.parentlobj_id))
  • Rows Removed by Join Filter: 3410
  • Buffers: shared hit=49180 dirtied=2
5. 1.051 69.393 ↓ 3,472.0 3,472 1

Nested Loop (cost=9.49..28.14 rows=1 width=59) (actual time=28.807..69.393 rows=3,472 loops=1)

  • Output: l0.lobj_id, p1.commentushort, ln2.childlobj_id, p2.lobj_name, ln1_2.parentlobj_id, ln1_2.childlobj_id
  • Buffers: shared hit=35180 dirtied=2
6. 1.349 57.926 ↓ 3,472.0 3,472 1

Nested Loop Left Join (cost=9.07..19.75 rows=1 width=43) (actual time=28.796..57.926 rows=3,472 loops=1)

  • Output: l0.lobj_id, p1.commentushort, ln2.childlobj_id, p2.lobj_name
  • Buffers: shared hit=21236 dirtied=2
7. 8.617 32.273 ↓ 3,472.0 3,472 1

Merge Join (cost=8.51..10.85 rows=1 width=31) (actual time=28.734..32.273 rows=3,472 loops=1)

  • Output: l0.lobj_id, ln2.childlobj_id, p2.lobj_name
  • Merge Cond: (ln2.parentlobj_id = p2.lobj_id)
  • Buffers: shared hit=292 dirtied=2
8. 13.411 23.233 ↓ 115.4 127,472 1

Nested Loop (cost=0.71..501.73 rows=1,105 width=24) (actual time=0.167..23.233 rows=127,472 loops=1)

  • Output: l0.lobj_id, ln2.childlobj_id, ln2.parentlobj_id
  • Buffers: shared hit=291 dirtied=2
9. 1.598 1.598 ↓ 120.9 2,056 1

Index Only Scan using pk_objectlink on dalimes.objectlink ln2 (cost=0.42..180.58 rows=17 width=16) (actual time=0.078..1.598 rows=2,056 loops=1)

  • Output: ln2.parentotpl_id, ln2.parentlobj_id, ln2.ts_deletion, ln2.childotpl_id, ln2.childlobj_id, ln2.olnk_id
  • Index Cond: ((ln2.parentotpl_id = 8) AND (ln2.ts_deletion = 0) AND (ln2.childotpl_id = 35))
  • Heap Fetches: 2056
  • Buffers: shared hit=97
10. 7.288 8.224 ↑ 1.0 62 2,056

Materialize (cost=0.29..307.50 rows=65 width=8) (actual time=0.000..0.004 rows=62 loops=2,056)

  • Output: l0.lobj_id
  • Buffers: shared hit=194 dirtied=2
11. 0.936 0.936 ↑ 1.0 62 1

Index Only Scan using ixu_o_pageorder_idlist on dalimes.o_pageorder l0 (cost=0.29..307.17 rows=65 width=8) (actual time=0.082..0.936 rows=62 loops=1)

  • Output: l0.lobj_id
  • Index Cond: ((l0.ts_deletion = 0) AND (l0.lobj_id = ANY ('{144557,10687,531714,534180,518968,518930,518972,534184,531715,518934,25946,534176,531719,531735,534188,531723,534807,531739,531727,534900,531731,534912,534908,534904,534920,534924,534916,534936,518226,10905,536066,536074,536070,536078,536042,536062,536038,536046,477154,477577,477623,150606,150610,150614,536034,536058,536054,535608,535612,536053,514499,514503,10871,25942,406693,514458,514868,514919,514299,514322,514151,514495,514430,514434,514801,518555}'::bigint[])))
  • Heap Fetches: 60
  • Buffers: shared hit=194 dirtied=2
12. 0.413 0.423 ↓ 284.3 3,412 1

Sort (cost=1.41..1.44 rows=12 width=23) (actual time=0.031..0.423 rows=3,412 loops=1)

  • Output: p2.lobj_name, p2.lobj_id
  • Sort Key: p2.lobj_id
  • Sort Method: quicksort Memory: 26kB
  • Buffers: shared hit=1
13. 0.010 0.010 ↓ 1.1 13 1

Seq Scan on dalimes.o_customer p2 (cost=0.00..1.20 rows=12 width=23) (actual time=0.005..0.010 rows=13 loops=1)

  • Output: p2.lobj_name, p2.lobj_id
  • Filter: ((p2.lobj_id <> '2'::bigint) AND (p2.ts_deletion = 0))
  • Buffers: shared hit=1
14. 6.944 24.304 ↑ 1.0 1 3,472

Nested Loop (cost=0.56..8.88 rows=1 width=20) (actual time=0.006..0.007 rows=1 loops=3,472)

  • Output: ln1.childlobj_id, p1.commentushort
  • Buffers: shared hit=20944
15. 10.416 10.416 ↑ 1.0 1 3,472

Index Scan using ix_objectlink_ctctp on dalimes.objectlink ln1 (cost=0.42..8.39 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=3,472)

  • Output: ln1.olnk_id, ln1.parentotpl_id, ln1.parentlobj_id, ln1.childotpl_id, ln1.childlobj_id, ln1.ts_deletion
  • Index Cond: ((l0.lobj_id = ln1.childlobj_id) AND (ln1.childotpl_id = 53) AND (ln1.parentotpl_id = 35))
  • Buffers: shared hit=14000
16. 6.944 6.944 ↑ 1.0 1 3,472

Index Scan using ixu_o_job_id on dalimes.o_job p1 (cost=0.14..0.49 rows=1 width=20) (actual time=0.002..0.002 rows=1 loops=3,472)

  • Output: p1.outerpage_scalingvalue, p1.new_useissuescaling, p1.new_routingmargins, p1.lobj_isroot, p1.blocksize_back, p1.lobj_id, p1.new_defaultoffsety, p1.new_pageorderworkflow, p1.segmenttrim_overfold, p1.new_defaultrotation, p1.new_publicationdate, p1.new_defaultoffsetx, p1.new_collatingmarksposition, p1.new_simulation, p1.new_shrinkouterribon, p1.new_jobworkflow, p1.new_inhousepostprocessing, p1.syshierarchy, p1.printedtrim_footer, p1.parent_node_id, p1.outerpage_creepvalue, p1.segmenttrim_outer, p1.lobj_name, p1.segmenttrim_routingmargins, p1.new_folding, p1.new_lockshortname, p1.new_priority, p1.maximalscaling_use, p1.maximalscaling_value, p1.new_reversedview, p1.new_trimmedwidth, p1.new_safetylr, p1.ostt_list, p1.lobj_version, p1.new_exportasrss, p1.new_formworkflow, p1.new_rolemasks, p1.nw_denyupdateofpublicationda, p1.new_trimmedheight, p1.ts_deletion, p1.new_shiftmark, p1.new_site, p1.new_iccname, p1.maximalscaling_steps, p1.ts_creation, p1.printedtrim_head, p1.printedtrim_face, p1.new_skalingmethod, p1.outerpage_scalingstartvalue, p1.segmenttrim_gutter, p1.new_bleedleftandright, p1.new_usesectionscaling, p1.new_pagecuttoff, p1.ts_lastchange, p1.commentulong, p1.new_usenbpageforskaling, p1.creationuser_code, p1.new_safetytb, p1.new_creepingreference, p1.new_applycreeping, p1.new_compensatebracketeffect, p1.segmenttrim_millingdepth, p1.blocksize_front, p1.segmenttrim_footer, p1.new_bleedtopandbottom, p1.new_uselinearissuescaling, p1.innerpage_scalingvalue, p1.maximalscaling_stepsperform, p1.innerpage_creepvalue, p1.commentushort, p1.new_reelpostprocessing, p1.node_id, p1.new_uselinearsectionscaling, p1.new_mainpageorder, p1.ostt_value, p1.lastchangeuser_code, p1.segmenttrim_head
  • Index Cond: ((p1.lobj_id = ln1.parentlobj_id) AND (p1.ts_deletion = 0))
  • Buffers: shared hit=6944
17. 10.416 10.416 ↑ 1.0 1 3,472

Index Scan using ix_objectlink_ctctp on dalimes.objectlink ln1_2 (cost=0.42..8.39 rows=1 width=16) (actual time=0.002..0.003 rows=1 loops=3,472)

  • Output: ln1_2.olnk_id, ln1_2.parentotpl_id, ln1_2.parentlobj_id, ln1_2.childotpl_id, ln1_2.childlobj_id, ln1_2.ts_deletion
  • Index Cond: ((ln1_2.childlobj_id = l0.lobj_id) AND (ln1_2.childotpl_id = 53) AND (ln1_2.parentotpl_id = 19))
  • Buffers: shared hit=13944
18. 6.944 6.944 ↑ 1.0 1 3,472

Index Scan using ix_objectlink_ctctp on dalimes.objectlink ln1_1 (cost=0.42..3.26 rows=1 width=16) (actual time=0.002..0.002 rows=1 loops=3,472)

  • Output: ln1_1.olnk_id, ln1_1.parentotpl_id, ln1_1.parentlobj_id, ln1_1.childotpl_id, ln1_1.childlobj_id, ln1_1.ts_deletion
  • Index Cond: ((ln1_1.childlobj_id = ln1_2.childlobj_id) AND (ln1_1.childotpl_id = 53) AND (ln1_1.parentotpl_id = 35))
  • Buffers: shared hit=14000
19. 0.124 0.124 ↑ 1.0 1 62

Index Only Scan using ixu_o_job_id on dalimes.o_job p1_1 (cost=0.14..0.49 rows=1 width=8) (actual time=0.002..0.002 rows=1 loops=62)

  • Output: p1_1.lobj_id, p1_1.ts_deletion, p1_1.syshierarchy, p1_1.lobj_name
  • Index Cond: ((p1_1.lobj_id = ln1_1.parentlobj_id) AND (p1_1.ts_deletion = 0))
  • Heap Fetches: 62
  • Buffers: shared hit=124
20. 0.310 0.310 ↑ 1.0 1 62

Index Only Scan using ixu_o_folder_id on dalimes.o_folder p1_2 (cost=0.28..0.40 rows=1 width=8) (actual time=0.005..0.005 rows=1 loops=62)

  • Output: p1_2.lobj_id, p1_2.ts_deletion, p1_2.syshierarchy, p1_2.lobj_name
  • Index Cond: ((p1_2.lobj_id = ln1_2.parentlobj_id) AND (p1_2.ts_deletion = 0))
  • Filter: (p1_2.lobj_id <> '0'::bigint)
  • Heap Fetches: 62
  • Buffers: shared hit=186
Execution time : 80.605 ms