explain.depesz.com

PostgreSQL's explain analyze made readable

Result: HN4F : test100

Settings
# exclusive inclusive rows x rows loops node
1. 0.005 22,365.961 ↑ 12.0 1 1

Sort (cost=3,984.23..3,984.26 rows=12 width=81) (actual time=22,365.961..22,365.961 rows=1 loops=1)

  • Output: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, (count("WBCC".pylabel)), (count("AssignWB".pxcreatedatetime)), (count("AssignWB".pxdeadlineexecute)), (count("AssignWB".pxgo
  • Sort Key: "PC0".pylabel, (count("AssignWB".pxcreatedatetime)) DESC
  • Sort Method: quicksort Memory: 25kB
2. 0.221 22,365.956 ↑ 12.0 1 1

GroupAggregate (cost=3,983.66..3,984.02 rows=12 width=81) (actual time=22,365.956..22,365.956 rows=1 loops=1)

  • Output: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, (count("WBCC".pylabel)), count("AssignWB".pxcreatedatetime), count("AssignWB".pxdeadlineexecute), count("AssignWB".pxg
  • Group Key: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, (count("WBCC".pylabel))
3. 3.793 22,365.735 ↓ 101.8 1,222 1

Sort (cost=3,983.66..3,983.69 rows=12 width=81) (actual time=22,365.681..22,365.735 rows=1,222 loops=1)

  • Output: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, (count("WBCC".pylabel)), "AssignWB".pxcreatedatetime, "AssignWB".pxdeadlineexecute, "AssignWB".pxgoalexecute
  • Sort Key: "PC0".pylabel, (count("WBCC".pylabel))
  • Sort Method: quicksort Memory: 220kB
4. 4.727 22,361.942 ↓ 101.8 1,222 1

Nested Loop Left Join (cost=1,020.16..3,983.44 rows=12 width=81) (actual time=16.725..22,361.942 rows=1,222 loops=1)

  • Output: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, (count("WBCC".pylabel)), "AssignWB".pxcreatedatetime, "AssignWB".pxdeadlineexecute, "AssignWB".pxgoalexecu
  • Inner Unique: true
  • Join Filter: ((("PC0".pxobjclass)::text = 'Data-Admin-WorkBasket'::text) AND (("WBCC".pxassignedoperatorid)::text = ("PC0".pyworkbasket)::text))
5. 6.823 6.835 ↓ 1,222.0 1,222 1

Nested Loop Left Join (cost=0.70..7.21 rows=1 width=98) (actual time=0.034..6.835 rows=1,222 loops=1)

  • Output: "PC0".pyworkbasket, "PC0".pyworkgroup, "PC0".pylabel, "PC0".pxobjclass, "AssignWB".pxcreatedatetime, "AssignWB".pxdeadlineexecute, "AssignWB".pxgoalexecut
  • Join Filter: ((("PC0".pxobjclass)::text = 'Data-Admin-WorkBasket'::text) AND (("PC0".pyworkbasket)::text = ("AssignWB".pxassignedoperatorid)::text))
  • -> Index Scan using assign_icgetwb_refwgapp on pegadata.pc_assign_workbasket "AssignWB" (cost=0.42..4.88 rows=2 width=35) (actual time=0.021..5.133 rows=1222 lo
6. 0.012 0.012 ↑ 1.0 1 1

Index Scan using pr_data_admin_idx3 on pegadata.pr_data_admin "PC0" (cost=0.28..2.30 rows=1 width=74) (actual time=0.011..0.012 rows=1 loops=1)

  • Output: "PC0".pxcommitdatetime, "PC0".pxsavedatetime, "PC0".pxcreatedatetime, "PC0".pxcreateopname, "PC0".pxcreateoperator, "PC0".pxcreatesystemid, "PC0".px
  • Index Cond: (("PC0".pyworkbasket)::text = 'DestinationCode'::text)
  • Filter: ((("PC0".pxobjclass)::text = 'Data-Admin-WorkBasket'::text) AND (("PC0".pyworkgroup)::text = 'NewBusiness'::text))
  • Output: "AssignWB".pxcommitdatetime, "AssignWB".pxsavedatetime, "AssignWB".pxapplication, "AssignWB".pxassignedoperatorid, "AssignWB".pxassignedorg, "Assign
  • Index Cond: ((("AssignWB".pxassignedoperatorid)::text = 'DestinationCode'::text) AND (("AssignWB".pxworkgroup)::text = 'NewBusiness'::text) AND (("AssignWB
  • Filter: (("AssignWB".pxobjclass)::text = 'Assign-WorkBasket'::text)
7. 3.666 22,350.380 ↑ 94.0 1 1,222

Finalize GroupAggregate (cost=1,019.46..3,973.88 rows=94 width=19) (actual time=18.290..18.290 rows=1 loops=1,222)

  • Output: "WBCC".pxassignedoperatorid, count("WBCC".pylabel)
  • Group Key: "WBCC".pxassignedoperatorid
8. 3,480.256 22,346.714 ↑ 47.0 2 1,222

Gather (cost=1,019.46..3,972.47 rows=94 width=19) (actual time=18.200..18.287 rows=2 loops=1,222)

  • Output: "WBCC".pxassignedoperatorid, (PARTIAL count("WBCC".pylabel))
  • Workers Planned: 1
  • Workers Launched: 1
9. 103.870 18,866.458 ↑ 94.0 1 2,444 / 2

Partial GroupAggregate (cost=19.46..2,963.07 rows=94 width=19) (actual time=15.439..15.439 rows=1 loops=2,444)

  • Output: "WBCC".pxassignedoperatorid, PARTIAL count("WBCC".pylabel)
  • Group Key: "WBCC".pxassignedoperatorid
  • Worker 0: actual time=13.835..13.835 rows=1 loops=1222
10. 18,631.834 18,762.588 ↑ 1.1 606 2,444 / 2

Nested Loop (cost=19.46..2,958.66 rows=694 width=17) (actual time=0.243..15.354 rows=606 loops=2,444)

  • Output: "WBCC".pxassignedoperatorid, "WBCC".pylabel
  • Inner Unique: true
  • Worker 0: actual time=0.069..13.758 rows=541 loops=1222
  • -> Parallel Bitmap Heap Scan on pegadata.pc_assign_workbasket "WBCC" (cost=19.04..1221.99 rows=730 width=46) (actual time=0.203..1.261 rows=61
  • Output: "WBCC".pxcommitdatetime, "WBCC".pxsavedatetime, "WBCC".pxapplication, "WBCC".pxassignedoperatorid, "WBCC".pxassignedorg, "WBCC".px
  • Recheck Cond: (("WBCC".pxassignedoperatorid)::text = 'DestinationCode'::text)
  • Filter: (("WBCC".pxobjclass)::text = 'Assign-WorkBasket'::text)
  • Heap Blocks: exact=777676
  • Worker 0: actual time=0.029..1.027 rows=545 loops=1222
  • -> Index Scan using pc_afl_grp_nbus_work_pk on pegadata.nbus_work "NNUW" (cost=0.42..2.38 rows=1 width=27) (actual time=0.022..0.022 rows=1 lo
  • Output: "NNUW".pxcommitdatetime, "NNUW".pxsavedatetime, "NNUW".pxcoverinskey, "NNUW".pxcoveredcount, "NNUW".pxcoveredcountopen, "NNUW".pxc
  • Index Cond: (("NNUW".pzinskey)::text = ("WBCC".pxrefobjectkey)::text)
  • Filter: ((("NNUW".pxobjclass)::text ~~ 'AFL-Grp-NBUS-Work%'::text) AND (("NNUW".companycode_1)::text = '01'::text))
  • Rows Removed by Filter: 0
  • Worker 0: actual time=0.023..0.023 rows=1 loops=666053
11. 130.754 130.754 ↑ 1.0 1,222 1,222 / 2

Bitmap Index Scan on pxassignedoperatorid_idx (cost=0.00..18.72 rows=1,241 width=0) (actual time=0.214..0.214 rows=1,222 loops=1,222)

  • Index Cond: (("WBCC".pxassignedoperatorid)::text = 'DestinationCode'::text)
Planning time : 0.711 ms
Execution time : 22,366.777 ms