explain.depesz.com

PostgreSQL's explain analyze made readable

Result: mqmS

Settings
# exclusive inclusive rows x rows loops node
1. 6,312.503 730,736.002 ↑ 9.2 376,138 1

Sort (cost=10,362,234.81..10,370,896.19 rows=3,464,553 width=387) (actual time=730,567.731..730,736.002 rows=376,138 loops=1)

  • Output: ((pj.code)::character varying(50)), pj.id, ((pj.name)::character varying(255)), ((tk.name)::character varying(255)), tk.id, ((tk.code)::character varying(50)), ((ui.externalid)::character varying(255)), ui.id, ((ui.lastname)::character varying(50)), ((ui.firstname)::character varying(50)), ui.duplicatename, ((login.loginname)::character varying(255)), ((dep.name)::character varying(255)), "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, ts.enddate, "*SELECT* 1".duration, tslist.timesheetstatus, ((timeentrymetadata7.text)::text), ((cl.name)::character varying(255)), cl.id, ((cl.code)::character varying(50)), ((userinfo9.displayname)::text), ((userinfo10.displayname)::text), ((billingrate11.name)::character varying(50)), "*SELECT* 1".workduration, ((tdh.hierarchysorting)::text), ((tdh.hierarchytaskname)::text), "*SELECT* 1".userid
  • Sort Key: ((pj.code)::character varying(50)) COLLATE "en_US", ((pj.name)::character varying(255)) COLLATE "en_US", ((tk.name)::character varying(255)) COLLATE "en_US", ((tk.code)::character varying(50)) COLLATE "en_US", ((ui.externalid)::character varying(255)) COLLATE "en_US", ((ui.lastname)::character varying(50)) COLLATE "en_US", ((ui.firstname)::character varying(50)) COLLATE "en_US", ui.duplicatename, ((login.loginname)::character varying(255)) COLLATE "en_US", ((dep.name)::character varying(255)) COLLATE "en_US", "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, ts.enddate, ((timeentrymetadata7.text)::text) COLLATE "en_US", ((cl.name)::character varying(255)) COLLATE "en_US", ((cl.code)::character varying(50)) COLLATE "en_US", ((userinfo9.displayname)::text) COLLATE "en_US", ((userinfo10.displayname)::text) COLLATE "en_US", ((billingrate11.name)::character varying(50)) COLLATE "en_US", ((tdh.hierarchysorting)::text) COLLATE "en_US", ((tdh.hierarchytaskname)::text) COLLATE "en_US
  • Sort Method: quicksort Memory: 204132kB
  • Buffers: shared hit=8866755 read=314387 written=16149
2.          

Initplan (forSort)

3. 0.016 0.016 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.systeminformation (cost=0.00..1.01 rows=1 width=4) (actual time=0.015..0.016 rows=1 loops=1)

  • Output: systeminformation.basecurrencyid
  • Buffers: shared read=1
4. 752.557 724,423.483 ↑ 9.2 376,138 1

Hash Left Join (cost=1,634,374.19..9,634,039.93 rows=3,464,553 width=387) (actual time=38,196.250..724,423.483 rows=376,138 loops=1)

  • Output: pj.code, pj.id, pj.name, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, ts.enddate, "*SELECT* 1".duration, tslist.timesheetstatus, timeentrymetadata7.text, cl.name, cl.id, cl.code, userinfo9.displayname, userinfo10.displayname, billingrate11.name, "*SELECT* 1".workduration, tdh.hierarchysorting, tdh.hierarchytaskname, "*SELECT* 1".userid
  • Hash Cond: (tk.id = tdh.taskid)
  • Buffers: shared hit=8866755 read=314387 written=16149
5. 365.811 723,581.698 ↑ 9.2 376,138 1

Hash Left Join (cost=1,629,749.90..9,581,778.04 rows=3,464,553 width=328) (actual time=38,106.541..723,581.698 rows=376,138 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, pj.code, pj.id, pj.name, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, cl.name, cl.id, cl.code, userinfo9.displayname, userinfo10.displayname, billingrate11.name
  • Hash Cond: ("*SELECT* 1".billingrateid = billingrate11.id)
  • Buffers: shared hit=8866755 read=311759 written=16149
6. 371.925 723,214.238 ↑ 9.2 376,138 1

Hash Left Join (cost=1,629,734.21..9,534,124.75 rows=3,464,553 width=319) (actual time=38,104.873..723,214.238 rows=376,138 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, cl.name, cl.id, cl.code, userinfo9.displayname, userinfo10.displayname
  • Hash Cond: (pj.projectleaderapproverid = userinfo10.id)
  • Buffers: shared hit=8866753 read=311754 written=16149
7. 437.128 722,841.471 ↑ 9.2 376,138 1

Hash Left Join (cost=1,629,688.61..9,486,514.94 rows=3,464,553 width=309) (actual time=38,104.015..722,841.471 rows=376,138 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, cl.name, cl.id, cl.code, userinfo9.displayname
  • Hash Cond: (COALESCE(clients18.id, pj.clientid) = cl.id)
  • Buffers: shared hit=8866731 read=311754 written=16149
8. 403.719 722,403.591 ↑ 9.2 376,138 1

Hash Left Join (cost=1,629,640.90..9,462,215.36 rows=3,464,553 width=274) (actual time=38,103.249..722,403.591 rows=376,138 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, clients18.id
  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata17.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:client:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata17.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:client:(.*)$'::text))::integer ELSE NULL::integer END = clients18.id)
  • Buffers: shared hit=8866720 read=311734 written=16149
9. 859.568 721,999.824 ↑ 9.2 376,138 1

Hash Semi Join (cost=1,629,636.97..9,416,306.10 rows=3,464,553 width=328) (actual time=38,103.173..721,999.824 rows=376,138 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, timeentrymetadata17.uri
  • Hash Cond: (pj.id = project19.id)
  • Buffers: shared hit=8866718 read=311734 written=16149
10. 1,244.793 721,138.993 ↑ 16.0 1,483,881 1

Hash Left Join (cost=1,629,415.40..9,315,330.04 rows=23,699,554 width=328) (actual time=38,101.891..721,138.993 rows=1,483,881 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text, timeentrymetadata17.uri
  • Hash Cond: ("*SELECT* 1".timeentryid = timeentrymetadata17.timeentryid)
  • Buffers: shared hit=8866537 read=311734 written=16149
11. 1,842.512 719,690.036 ↑ 16.0 1,483,881 1

Hash Left Join (cost=1,502,497.07..9,099,538.23 rows=23,699,554 width=270) (actual time=37,897.698..719,690.036 rows=1,483,881 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name, timeentrymetadata7.text
  • Hash Cond: ("*SELECT* 1".timeentryid = timeentrymetadata7.timeentryid)
  • Buffers: shared hit=8789313 read=311734 written=16149
12. 1,796.114 711,563.919 ↑ 16.0 1,483,881 1

Hash Left Join (cost=1,206,219.10..4,624,954.42 rows=23,699,554 width=225) (actual time=31,609.467..711,563.919 rows=1,483,881 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, tk.name, tk.id, tk.code, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name
  • Hash Cond: (task16.id = tk.id)
  • Buffers: shared hit=8599778 read=311734 written=16149
13. 1,630.700 709,648.854 ↑ 16.0 1,483,881 1

Hash Join (cost=1,200,722.42..4,293,588.87 rows=23,699,554 width=200) (actual time=31,490.385..709,648.854 rows=1,483,881 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, task16.id, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, tslist.timesheetstatus, ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, dep.name
  • Hash Cond: ("*SELECT* 1".userid = ui.id)
  • Buffers: shared hit=8598151 read=311733 written=16149
14. 1,859.814 708,011.725 ↑ 16.0 1,483,881 1

Hash Join (cost=1,200,563.44..3,988,798.00 rows=23,699,554 width=156) (actual time=31,483.945..708,011.725 rows=1,483,881 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, task16.id, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, ts.userid, tslist.timesheetstatus
  • Hash Cond: (ts.id = tslist.timesheetid)
  • Buffers: shared hit=8598133 read=311701 written=16149
15. 2,704.308 705,801.735 ↑ 16.0 1,488,202 1

Nested Loop (cost=1,183,552.96..3,645,533.07 rows=23,802,372 width=168) (actual time=31,133.486..705,801.735 rows=1,488,202 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, task16.id, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid, ts.enddate, ts.id, ts.userid
  • Buffers: shared hit=8598110 read=298115 written=16149
16. 1,735.500 686,727.205 ↓ 1.0 1,488,202 1

Hash Join (cost=1,183,552.54..1,649,933.73 rows=1,487,801 width=144) (actual time=31,133.095..686,727.205 rows=1,488,202 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, task16.id, pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid
  • Hash Cond: (COALESCE(project14.id, task16.projectid) = pj.id)
  • Buffers: shared hit=1710025 read=296178 written=16149
17. 314,301.681 684,989.173 ↓ 1.0 1,489,555 1

Hash Left Join (cost=1,183,307.82..1,629,231.75 rows=1,487,801 width=84) (actual time=31,130.548..684,989.173 rows=1,489,555 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, project14.id, task16.id, task16.projectid
  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata15.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:task:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata15.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:task:(.*)$'::text))::integer ELSE NULL::integer END = task16.id)
  • Buffers: shared hit=1709844 read=296178 written=16149
18. 330,491.388 370,606.132 ↓ 1.0 1,489,555 1

Hash Left Join (cost=1,179,685.53..1,595,853.44 rows=1,487,801 width=134) (actual time=31,048.818..370,606.132 rows=1,489,555 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, project14.id, timeentrymetadata15.uri
  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata13.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:project:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata13.uri, '^urn:replicon-tenant:d39c603ba5ee46da9a42069eec872cf2:project:(.*)$'::text))::integer ELSE NULL::integer END = project14.id)
  • Buffers: shared hit=1709282 read=295114 written=16149
19. 2,105.717 40,112.999 ↓ 1.0 1,489,555 1

Merge Left Join (cost=1,179,592.37..1,566,004.26 rows=1,487,801 width=188) (actual time=31,046.808..40,112.999 rows=1,489,555 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, timeentrymetadata13.uri, timeentrymetadata15.uri
  • Merge Cond: ("*SELECT* 1".timeentryid = timeentrymetadata13.timeentryid)
  • Buffers: shared hit=1709147 read=295114 written=16149
20. 1,993.911 34,736.811 ↓ 1.0 1,489,555 1

Merge Left Join (cost=1,179,591.81..1,209,093.28 rows=1,487,801 width=130) (actual time=31,046.785..34,736.811 rows=1,489,555 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, timeentrymetadata15.uri
  • Merge Cond: ("*SELECT* 1".timeentryid = timeentrymetadata15.timeentryid)
  • Buffers: shared hit=189551 read=279839 written=16149
21. 2,510.794 24,096.724 ↓ 1.0 1,489,555 1

Sort (cost=744,591.92..748,311.42 rows=1,487,801 width=72) (actual time=23,284.527..24,096.724 rows=1,489,555 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid
  • Sort Key: "*SELECT* 1".timeentryid
  • Sort Method: quicksort Memory: 258048kB
  • Buffers: shared hit=16 read=279839 written=16149
22. 711.704 21,585.930 ↓ 1.0 1,489,555 1

Append (cost=192,085.36..592,056.98 rows=1,487,801 width=72) (actual time=5,717.304..21,585.930 rows=1,489,555 loops=1)

  • Buffers: shared hit=16 read=279839 written=16149
23. 751.791 20,873.749 ↓ 1.0 1,489,554 1

Subquery Scan on *SELECT* 1 (cost=192,085.36..592,054.93 rows=1,487,800 width=72) (actual time=5,717.302..20,873.749 rows=1,489,554 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid
  • Buffers: shared hit=16 read=279837 written=16149
24. 3,608.344 20,121.958 ↓ 1.0 1,489,554 1

Hash Left Join (cost=192,085.36..577,176.93 rows=1,487,800 width=237) (actual time=5,717.301..20,121.958 rows=1,489,554 loops=1)

  • Output: te.id, te.userid, te.entrydate, NULL::time without time zone, NULL::time without time zone, CASE WHEN (te.hours IS NOT NULL) THEN te.hours WHEN ((te.intime IS NULL) OR (te.outtime IS NULL)) THEN NULL::interval WHEN ((te.outtime - te.intime) >= '00:00:00'::interval) THEN (te.outtime - te.intime) ELSE (('24:00:00'::interval + (te.outtime)::interval) - (te.intime)::interval) END, CASE WHEN (tembillingrate.uri IS NULL) THEN NULL::uuid WHEN (tembillingrate.uri = 'urn:replicon:project-specific-billing-rate'::text) THEN psi.projectcustombillingrateid WHEN (tembillingrate.uri = 'urn:replicon:user-specific-billing-rate'::text) THEN psi.usercustombillingrateid ELSE ("substring"(tembillingrate.uri, concat('^urn:replicon-tenant:', si.tenantslug, ':company-billing-rate:(.*)$')))::uuid END, NULL::integer, NULL::interval, NULL::integer, CASE WHEN (temdbreaktype.uri IS NULL) THEN CASE WHEN (te.hours IS NOT NULL) THEN te.hours WHEN ((te.intime IS NULL) OR (te.outtime IS NULL)) THEN NULL::interval WHEN ((te.outtime - te.intime) >= '00:00:00'::interval) THEN (te.outtime - te.intime) ELSE (('24:00:00'::interval + (te.outtime)::interval) - (te.intime)::interval) END ELSE NULL::interval END, NULL::interval, NULL::integer
  • Hash Cond: (te.id = temdbreaktype.timeentryid)
  • Buffers: shared hit=16 read=279837 written=16149
25. 1,467.123 13,036.649 ↓ 1.0 1,489,554 1

Hash Right Join (cost=65,167.03..370,289.35 rows=1,487,800 width=179) (actual time=2,240.062..13,036.649 rows=1,489,554 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime, tembillingrate.uri
  • Hash Cond: (tembillingrate.timeentryid = te.id)
  • Buffers: shared hit=9 read=202620 written=16149
26. 9,332.566 9,332.566 ↓ 1.0 1,319,097 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata tembillingrate (cost=0.00..287,038.49 rows=1,315,187 width=74) (actual time=0.590..9,332.566 rows=1,319,097 loops=1)

  • Output: tembillingrate.id, tembillingrate.timeentryid, tembillingrate.parentid, tembillingrate.index, tembillingrate.key, tembillingrate.uri, tembillingrate.slug, tembillingrate."boolean", tembillingrate.date, tembillingrate.number, tembillingrate.text, tembillingrate."time", tembillingrate.timespan, tembillingrate.daterange_startdate, tembillingrate.daterange_enddate, tembillingrate.daterange_relativedaterangeuri, tembillingrate.daterange_relativedaterangeasofdate, tembillingrate.workdayduration_decimalworkdays, tembillingrate.workdayduration_workdays, tembillingrate.workdayduration_hours, tembillingrate.workdayduration_minutes
  • Filter: (upper(tembillingrate.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:BILLING-RATE'::text)
  • Rows Removed by Filter: 5189509
  • Buffers: shared hit=6 read=189529 written=16149
27. 807.489 2,236.960 ↓ 1.0 1,489,554 1

Hash (cost=46,569.53..46,569.53 rows=1,487,800 width=121) (actual time=2,236.960..2,236.960 rows=1,489,554 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime
  • Buckets: 2097152 Batches: 1 Memory Usage: 237311kB
  • Buffers: shared hit=3 read=13091
28. 783.471 1,429.471 ↓ 1.0 1,489,554 1

Nested Loop (cost=0.00..46,569.53 rows=1,487,800 width=121) (actual time=0.504..1,429.471 rows=1,489,554 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime
  • Buffers: shared hit=3 read=13091
29. 0.005 0.028 ↑ 1.0 1 1

Nested Loop (cost=0.00..2.03 rows=1 width=65) (actual time=0.026..0.028 rows=1 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid
  • Buffers: shared read=2
30. 0.011 0.011 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.systeminformation si (cost=0.00..1.01 rows=1 width=33) (actual time=0.010..0.011 rows=1 loops=1)

  • Output: si.rootuserid, si.basecurrencyid, si.basecurrencysymbol, si.defaulttimesheetapprovalpathid, si.defaultexpenseapprovalpathid, si.defaulttimeoffapprovalpathid, si.defaultlanguageid, si.buildnumber, si.isreleaseversion, si.systemguid, si.systemtimezoneid, si.databaseguid, si.uncategorizedskillcategoryid, si.newuserdefaulttimezoneid, si.defaultholidaycalendarid, si.defaultofficescheduleid, si.customlogouri, si.tenantslug, si.databaseupdatescriptstage, si.defaulttimesheetperiodid
  • Buffers: shared read=1
31. 0.012 0.012 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.projectsysteminformation psi (cost=0.00..1.01 rows=1 width=32) (actual time=0.011..0.012 rows=1 loops=1)

  • Output: psi.usercustombillingrateid, psi.projectcustombillingrateid, psi.defaultprojectstatuslabelid, psi.defaultinvoicecompanyaddressid, psi.defaultbillingratesfornewclients, psi.billingprocesstype, psi.projectworkflowmode, psi.defaultinvoicetemplateid
  • Buffers: shared read=1
32. 645.972 645.972 ↓ 1.0 1,489,554 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentry te (cost=0.00..31,689.50 rows=1,487,800 width=56) (actual time=0.475..645.972 rows=1,489,554 loops=1)

  • Output: te.id, te.userid, te.entrydate, te.timeallocationtype, te.hours, te.intime, te.outtime
  • Filter: ((te.entrydate IS NOT NULL) AND ((te.timeallocationtype <> 2) OR (te.timeallocationtype IS NULL)))
  • Buffers: shared hit=3 read=13089
33. 0.002 3,476.965 ↓ 0.0 0 1

Hash (cost=126,918.31..126,918.31 rows=1 width=74) (actual time=3,476.965..3,476.965 rows=0 loops=1)

  • Output: temdbreaktype.uri, temdbreaktype.timeentryid
  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=7 read=77217
34. 3,476.963 3,476.963 ↓ 0.0 0 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata temdbreaktype (cost=0.56..126,918.31 rows=1 width=74) (actual time=3,476.963..3,476.963 rows=0 loops=1)

  • Output: temdbreaktype.uri, temdbreaktype.timeentryid
  • Index Cond: (upper(temdbreaktype.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:BREAK-TYPE'::text)
  • Buffers: shared hit=7 read=77217
35. 0.003 0.477 ↑ 1.0 1 1

Subquery Scan on *SELECT* 2 (cost=0.00..2.04 rows=1 width=72) (actual time=0.473..0.477 rows=1 loops=1)

  • Output: "*SELECT* 2".timeentryid, "*SELECT* 2".entrydate, "*SELECT* 2".duration, "*SELECT* 2".workduration, "*SELECT* 2".userid, "*SELECT* 2".billingrateid
  • Buffers: shared read=2
36. 0.016 0.474 ↑ 1.0 1 1

Nested Loop (cost=0.00..2.03 rows=1 width=24) (actual time=0.472..0.474 rows=1 loops=1)

  • Output: NULL::uuid, toff.userid, toe.entrydate, NULL::time without time zone, NULL::time without time zone, toe.duration, NULL::uuid, NULL::integer, NULL::interval, NULL::integer, NULL::interval, NULL::interval, NULL::integer
  • Join Filter: (toe.timeoffid = toff.id)
  • Buffers: shared read=2
37. 0.026 0.026 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffentries toe (cost=0.00..1.01 rows=1 width=24) (actual time=0.025..0.026 rows=1 loops=1)

  • Output: toe.id, toe.timeoffid, toe.entrydate, toe.duration, toe.timein, toe.timeout, toe.isreportable, toe.workdayduration, toe.entryid
  • Filter: (toe.entrydate IS NOT NULL)
  • Buffers: shared read=1
38. 0.432 0.432 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffs toff (cost=0.00..1.01 rows=1 width=8) (actual time=0.431..0.432 rows=1 loops=1)

  • Output: toff.id, toff.guidid, toff.userid, toff.createdbyuserid, toff.timeoffcodeid, toff.startdate, toff.enddate, toff.approvalstatus, toff.comments, toff.submittedonutc, toff.modifiedonutc, toff.info1, toff.info2, toff.info3, toff.info4, toff.info5, toff.startdurationtype, toff.enddurationtype, toff.startduration, toff.endduration, toff.startdatestarttime, toff.enddateendtime, toff.entryconfigurationmethod
  • Buffers: shared read=1
39. 2,298.401 8,646.176 ↓ 1.0 1,450,123 1

Sort (cost=434,999.89..438,615.11 rows=1,446,085 width=74) (actual time=7,762.248..8,646.176 rows=1,450,123 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Sort Key: timeentrymetadata15.timeentryid
  • Sort Method: quicksort Memory: 253076kB
  • Buffers: shared hit=189535
40. 6,347.775 6,347.775 ↓ 1.0 1,450,123 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata15 (cost=0.00..287,038.49 rows=1,446,085 width=74) (actual time=0.023..6,347.775 rows=1,450,123 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Filter: (upper(timeentrymetadata15.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text)
  • Rows Removed by Filter: 5058483
  • Buffers: shared hit=189535
41. 1,020.817 3,270.471 ↓ 1.0 1,457,422 1

Materialize (cost=0.56..334,635.03 rows=1,454,644 width=74) (actual time=0.019..3,270.471 rows=1,457,422 loops=1)

  • Output: timeentrymetadata13.id, timeentrymetadata13.timeentryid, timeentrymetadata13.parentid, timeentrymetadata13.index, timeentrymetadata13.key, timeentrymetadata13.uri, timeentrymetadata13.slug, timeentrymetadata13."boolean", timeentrymetadata13.date, timeentrymetadata13.number, timeentrymetadata13.text, timeentrymetadata13."time", timeentrymetadata13.timespan, timeentrymetadata13.daterange_startdate, timeentrymetadata13.daterange_enddate, timeentrymetadata13.daterange_relativedaterangeuri, timeentrymetadata13.daterange_relativedaterangeasofdate, timeentrymetadata13.workdayduration_decimalworkdays, timeentrymetadata13.workdayduration_workdays, timeentrymetadata13.workdayduration_hours, timeentrymetadata13.workdayduration_minutes
  • Buffers: shared hit=1519596 read=15275
42. 2,249.654 2,249.654 ↓ 1.0 1,457,422 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata13 (cost=0.56..330,998.42 rows=1,454,644 width=74) (actual time=0.015..2,249.654 rows=1,457,422 loops=1)

  • Output: timeentrymetadata13.id, timeentrymetadata13.timeentryid, timeentrymetadata13.parentid, timeentrymetadata13.index, timeentrymetadata13.key, timeentrymetadata13.uri, timeentrymetadata13.slug, timeentrymetadata13."boolean", timeentrymetadata13.date, timeentrymetadata13.number, timeentrymetadata13.text, timeentrymetadata13."time", timeentrymetadata13.timespan, timeentrymetadata13.daterange_startdate, timeentrymetadata13.daterange_enddate, timeentrymetadata13.daterange_relativedaterangeuri, timeentrymetadata13.daterange_relativedaterangeasofdate, timeentrymetadata13.workdayduration_decimalworkdays, timeentrymetadata13.workdayduration_workdays, timeentrymetadata13.workdayduration_hours, timeentrymetadata13.workdayduration_minutes
  • Index Cond: (upper(timeentrymetadata13.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text)
  • Buffers: shared hit=1519596 read=15275
43. 0.880 1.745 ↓ 1.0 2,836 1

Hash (cost=57.76..57.76 rows=2,832 width=4) (actual time=1.745..1.745 rows=2,836 loops=1)

  • Output: project14.id
  • Buckets: 4096 Batches: 1 Memory Usage: 132kB
  • Buffers: shared hit=135
44. 0.865 0.865 ↓ 1.0 2,836 1

Index Only Scan using project_pkey on d39c603ba5ee46da9a42069eec872cf2.project project14 (cost=0.28..57.76 rows=2,832 width=4) (actual time=0.014..0.865 rows=2,836 loops=1)

  • Output: project14.id
  • Heap Fetches: 339
  • Buffers: shared hit=135
45. 30.106 81.360 ↓ 1.0 88,828 1

Hash (cost=2,513.24..2,513.24 rows=88,724 width=8) (actual time=81.360..81.360 rows=88,828 loops=1)

  • Output: task16.id, task16.projectid
  • Buckets: 131072 Batches: 1 Memory Usage: 4494kB
  • Buffers: shared hit=562 read=1064
46. 51.254 51.254 ↓ 1.0 88,828 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.task task16 (cost=0.00..2,513.24 rows=88,724 width=8) (actual time=0.004..51.254 rows=88,828 loops=1)

  • Output: task16.id, task16.projectid
  • Buffers: shared hit=562 read=1064
47. 1.145 2.532 ↓ 1.0 2,836 1

Hash (cost=209.32..209.32 rows=2,832 width=68) (actual time=2.532..2.532 rows=2,836 loops=1)

  • Output: pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid
  • Buckets: 4096 Batches: 1 Memory Usage: 319kB
  • Buffers: shared hit=181
48. 1.387 1.387 ↓ 1.0 2,836 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project pj (cost=0.00..209.32 rows=2,832 width=68) (actual time=0.004..1.387 rows=2,836 loops=1)

  • Output: pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid
  • Buffers: shared hit=181
49. 16,370.222 16,370.222 ↑ 16.0 1 1,488,202

Index Scan using ixtsuseridstartdateenddate on d39c603ba5ee46da9a42069eec872cf2.timesheet ts (cost=0.42..1.18 rows=16 width=28) (actual time=0.011..0.011 rows=1 loops=1,488,202)

  • Output: ts.id, ts.userid, ts.startdate, ts.enddate, ts.approvalstatus, ts.duedate, ts.autosubmitdatetimeutc, ts.lastautosubmitattemptdatetimeutc, ts.createdonutc
  • Index Cond: ((ts.userid = "*SELECT* 1".userid) AND ("*SELECT* 1".entrydate >= ts.startdate) AND ("*SELECT* 1".entrydate <= ts.enddate))
  • Buffers: shared hit=6888085 read=1937
50. 55.934 350.176 ↓ 1.0 135,931 1

Hash (cost=15,313.42..15,313.42 rows=135,765 width=20) (actual time=350.176..350.176 rows=135,931 loops=1)

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Buckets: 262144 Batches: 1 Memory Usage: 8951kB
  • Buffers: shared hit=23 read=13586
51. 294.242 294.242 ↓ 1.0 135,931 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.dm_timesheetlist_facts tslist (cost=0.00..15,313.42 rows=135,765 width=20) (actual time=0.452..294.242 rows=135,931 loops=1)

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Filter: (tslist.timesheetstatus = 2)
  • Rows Removed by Filter: 419
  • Buffers: shared hit=23 read=13586
52. 0.512 6.429 ↓ 1.1 1,006 1

Hash (cost=147.04..147.04 rows=955 width=56) (actual time=6.429..6.429 rows=1,006 loops=1)

  • Output: ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, login.userid, du.userid, dep.name
  • Buckets: 1024 Batches: 1 Memory Usage: 98kB
  • Buffers: shared hit=18 read=32
53. 0.603 5.917 ↓ 1.1 1,006 1

Hash Join (cost=74.17..147.04 rows=955 width=56) (actual time=3.075..5.917 rows=1,006 loops=1)

  • Output: ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, login.userid, du.userid, dep.name
  • Hash Cond: (du.departmentid = dep.id)
  • Buffers: shared hit=18 read=32
54. 0.627 5.280 ↓ 1.1 1,006 1

Hash Join (cost=72.05..131.78 rows=955 width=46) (actual time=3.036..5.280 rows=1,006 loops=1)

  • Output: ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, login.userid, du.departmentid, du.userid
  • Hash Cond: (ui.id = du.userid)
  • Buffers: shared hit=17 read=32
55. 0.830 2.402 ↓ 1.0 1,006 1

Hash Join (cost=43.52..89.96 rows=1,001 width=38) (actual time=0.779..2.402 rows=1,006 loops=1)

  • Output: ui.externalid, ui.id, ui.lastname, ui.firstname, ui.duplicatename, login.loginname, login.userid
  • Hash Cond: (ui.id = login.userid)
  • Buffers: shared hit=15 read=28
56. 0.806 0.806 ↑ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo ui (cost=0.00..32.49 rows=1,049 width=26) (actual time=0.003..0.806 rows=1,006 loops=1)

  • Output: ui.id, ui.firstname, ui.lastname, ui.email, ui.startdate, ui.enddate, ui.externalid, ui.disabled, ui.info1, ui.info2, ui.info3, ui.info4, ui.info5, ui.info6, ui.info7, ui.info8, ui.info9, ui.info10, ui.info11, ui.info12, ui.info13, ui.info14, ui.info15, ui.info16, ui.info17, ui.info18, ui.info19, ui.info20, ui.info21, ui.info22, ui.info23, ui.info24, ui.info25, ui.info26, ui.info27, ui.info28, ui.info29, ui.info30, ui.info31, ui.info32, ui.info33, ui.info34, ui.info35, ui.info36, ui.info37, ui.info38, ui.info39, ui.info40, ui.info41, ui.info42, ui.info43, ui.info44, ui.info45, ui.info46, ui.info47, ui.info48, ui.info49, ui.info50, ui.languageid, ui.employeetypeid, ui.timezoneid, ui.duplicatename, ui.issampleuser, ui.slug, ui.defaultactivityid, ui.displayname
  • Buffers: shared hit=11 read=11
57. 0.343 0.766 ↓ 1.0 1,006 1

Hash (cost=31.01..31.01 rows=1,001 width=12) (actual time=0.766..0.766 rows=1,006 loops=1)

  • Output: login.loginname, login.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 53kB
  • Buffers: shared hit=4 read=17
58. 0.423 0.423 ↓ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.login (cost=0.00..31.01 rows=1,001 width=12) (actual time=0.003..0.423 rows=1,006 loops=1)

  • Output: login.loginname, login.userid
  • Buffers: shared hit=4 read=17
59. 0.323 2.251 ↓ 1.0 1,006 1

Hash (cost=16.01..16.01 rows=1,001 width=8) (actual time=2.251..2.251 rows=1,006 loops=1)

  • Output: du.departmentid, du.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 48kB
  • Buffers: shared hit=2 read=4
60. 1.928 1.928 ↓ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.departmentusers du (cost=0.00..16.01 rows=1,001 width=8) (actual time=0.002..1.928 rows=1,006 loops=1)

  • Output: du.departmentid, du.userid
  • Buffers: shared hit=2 read=4
61. 0.022 0.034 ↑ 1.0 50 1

Hash (cost=1.50..1.50 rows=50 width=18) (actual time=0.034..0.034 rows=50 loops=1)

  • Output: dep.name, dep.id
  • Buckets: 1024 Batches: 1 Memory Usage: 11kB
  • Buffers: shared hit=1
62. 0.012 0.012 ↑ 1.0 50 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.departments dep (cost=0.00..1.50 rows=50 width=18) (actual time=0.002..0.012 rows=50 loops=1)

  • Output: dep.name, dep.id
  • Buffers: shared hit=1
63. 34.274 118.951 ↓ 1.0 88,828 1

Hash (cost=4,387.63..4,387.63 rows=88,724 width=29) (actual time=118.951..118.951 rows=88,828 loops=1)

  • Output: tk.name, tk.id, tk.code
  • Buckets: 131072 Batches: 1 Memory Usage: 6576kB
  • Buffers: shared hit=1627 read=1
64. 61.356 84.677 ↓ 1.0 88,828 1

Hash Left Join (cost=2.44..4,387.63 rows=88,724 width=29) (actual time=0.054..84.677 rows=88,828 loops=1)

  • Output: tk.name, tk.id, tk.code
  • Hash Cond: (tk.estimatedcostcurrencyid = exchangerate.fixedcurrencyid)
  • Buffers: shared hit=1627 read=1
65. 23.276 23.276 ↓ 1.0 88,828 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.task tk (cost=0.00..2,513.24 rows=88,724 width=33) (actual time=0.003..23.276 rows=88,828 loops=1)

  • Output: tk.id, tk.projectid, tk.parentid, tk.name, tk.description, tk.estimatedcost, tk.estimatedcostcurrencyid, tk.estimatedhours, tk.estimatedexpenses, tk.estimatedexpensescurrencyid, tk.expenseentrystartdate, tk.expenseentryenddate, tk.info1, tk.info2, tk.info3, tk.info4, tk.info5, tk.info6, tk.info7, tk.info8, tk.info9, tk.info10, tk.info11, tk.info12, tk.info13, tk.info14, tk.info15, tk.info16, tk.info17, tk.info18, tk.info19, tk.info20, tk.code, tk.isclosed, tk.percentcomplete, tk.istimeentryallowed, tk.timeentrystartdate, tk.timeentryenddate, tk.orderindex, tk.timeandexpenseentrytype, tk.costtype
  • Buffers: shared hit=1626
66. 0.005 0.045 ↑ 1.0 7 1

Hash (cost=2.35..2.35 rows=7 width=4) (actual time=0.045..0.045 rows=7 loops=1)

  • Output: exchangerate.fixedcurrencyid
  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
  • Buffers: shared hit=1 read=1
67. 0.040 0.040 ↑ 1.0 7 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.exchangerate (cost=0.00..2.35 rows=7 width=4) (actual time=0.031..0.040 rows=7 loops=1)

  • Output: exchangerate.fixedcurrencyid
  • Filter: ((exchangerate.variablecurrencyid = $0) AND (('now'::cstring)::date >= exchangerate.effectivedate) AND (('now'::cstring)::date <= exchangerate.enddate))
  • Rows Removed by Filter: 42
  • Buffers: shared hit=1 read=1
68. 336.071 6,283.605 ↓ 1.0 739,632 1

Hash (cost=287,038.49..287,038.49 rows=739,158 width=61) (actual time=6,283.605..6,283.605 rows=739,632 loops=1)

  • Output: timeentrymetadata7.text, timeentrymetadata7.timeentryid
  • Buckets: 1048576 Batches: 1 Memory Usage: 75644kB
  • Buffers: shared hit=189535
69. 5,947.534 5,947.534 ↓ 1.0 739,632 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata7 (cost=0.00..287,038.49 rows=739,158 width=61) (actual time=0.017..5,947.534 rows=739,632 loops=1)

  • Output: timeentrymetadata7.text, timeentrymetadata7.timeentryid
  • Filter: (upper(timeentrymetadata7.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:COMMENTS'::text)
  • Rows Removed by Filter: 5768974
  • Buffers: shared hit=189535
70. 0.001 204.164 ↓ 0.0 0 1

Hash (cost=126,918.31..126,918.31 rows=1 width=74) (actual time=204.164..204.164 rows=0 loops=1)

  • Output: timeentrymetadata17.timeentryid, timeentrymetadata17.uri
  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=77224
71. 204.163 204.163 ↓ 0.0 0 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata17 (cost=0.56..126,918.31 rows=1 width=74) (actual time=204.163..204.163 rows=0 loops=1)

  • Output: timeentrymetadata17.timeentryid, timeentrymetadata17.uri
  • Index Cond: (upper(timeentrymetadata17.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:CLIENT'::text)
  • Buffers: shared hit=77224
72. 0.152 1.263 ↓ 1.0 421 1

Hash (cost=216.40..216.40 rows=414 width=4) (actual time=1.263..1.263 rows=421 loops=1)

  • Output: project19.id
  • Buckets: 1024 Batches: 1 Memory Usage: 23kB
  • Buffers: shared hit=181
73. 1.111 1.111 ↓ 1.0 421 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project project19 (cost=0.00..216.40 rows=414 width=4) (actual time=0.008..1.111 rows=421 loops=1)

  • Output: project19.id
  • Filter: (project19.projectstatuslabelid = 'f6918709-d5cf-436b-b0ff-2191cd2dd6a9'::uuid)
  • Rows Removed by Filter: 2415
  • Buffers: shared hit=181
74. 0.023 0.048 ↑ 1.0 65 1

Hash (cost=3.12..3.12 rows=65 width=4) (actual time=0.048..0.048 rows=65 loops=1)

  • Output: clients18.id
  • Buckets: 1024 Batches: 1 Memory Usage: 11kB
  • Buffers: shared hit=2
75. 0.025 0.025 ↑ 1.0 65 1

Index Only Scan using clients_pkey on d39c603ba5ee46da9a42069eec872cf2.clients clients18 (cost=0.14..3.12 rows=65 width=4) (actual time=0.008..0.025 rows=65 loops=1)

  • Output: clients18.id
  • Heap Fetches: 0
  • Buffers: shared hit=2
76. 0.032 0.752 ↑ 1.0 65 1

Hash (cost=46.90..46.90 rows=65 width=43) (actual time=0.752..0.752 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Buckets: 1024 Batches: 1 Memory Usage: 12kB
  • Buffers: shared hit=11 read=20
77. 0.278 0.720 ↑ 1.0 65 1

Hash Right Join (cost=10.46..46.90 rows=65 width=43) (actual time=0.701..0.720 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Hash Cond: (userinfo9.id = cl.clientmanageruserid)
  • Buffers: shared hit=11 read=20
78. 0.329 0.329 ↑ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo userinfo9 (cost=0.00..32.49 rows=1,049 width=18) (actual time=0.003..0.329 rows=1,006 loops=1)

  • Output: userinfo9.id, userinfo9.firstname, userinfo9.lastname, userinfo9.email, userinfo9.startdate, userinfo9.enddate, userinfo9.externalid, userinfo9.disabled, userinfo9.info1, userinfo9.info2, userinfo9.info3, userinfo9.info4, userinfo9.info5, userinfo9.info6, userinfo9.info7, userinfo9.info8, userinfo9.info9, userinfo9.info10, userinfo9.info11, userinfo9.info12, userinfo9.info13, userinfo9.info14, userinfo9.info15, userinfo9.info16, userinfo9.info17, userinfo9.info18, userinfo9.info19, userinfo9.info20, userinfo9.info21, userinfo9.info22, userinfo9.info23, userinfo9.info24, userinfo9.info25, userinfo9.info26, userinfo9.info27, userinfo9.info28, userinfo9.info29, userinfo9.info30, userinfo9.info31, userinfo9.info32, userinfo9.info33, userinfo9.info34, userinfo9.info35, userinfo9.info36, userinfo9.info37, userinfo9.info38, userinfo9.info39, userinfo9.info40, userinfo9.info41, userinfo9.info42, userinfo9.info43, userinfo9.info44, userinfo9.info45, userinfo9.info46, userinfo9.info47, userinfo9.info48, userinfo9.info49, userinfo9.info50, userinfo9.languageid, userinfo9.employeetypeid, userinfo9.timezoneid, userinfo9.duplicatename, userinfo9.issampleuser, userinfo9.slug, userinfo9.defaultactivityid, userinfo9.displayname
  • Buffers: shared hit=10 read=12
79. 0.033 0.113 ↑ 1.0 65 1

Hash (cost=9.65..9.65 rows=65 width=33) (actual time=0.113..0.113 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, cl.clientmanageruserid
  • Buckets: 1024 Batches: 1 Memory Usage: 12kB
  • Buffers: shared hit=1 read=8
80. 0.080 0.080 ↑ 1.0 65 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.clients cl (cost=0.00..9.65 rows=65 width=33) (actual time=0.023..0.080 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, cl.clientmanageruserid
  • Buffers: shared hit=1 read=8
81. 0.355 0.842 ↑ 1.0 1,006 1

Hash (cost=32.49..32.49 rows=1,049 width=18) (actual time=0.842..0.842 rows=1,006 loops=1)

  • Output: userinfo10.displayname, userinfo10.id
  • Buckets: 2048 Batches: 1 Memory Usage: 68kB
  • Buffers: shared hit=22
82. 0.487 0.487 ↑ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo userinfo10 (cost=0.00..32.49 rows=1,049 width=18) (actual time=0.003..0.487 rows=1,006 loops=1)

  • Output: userinfo10.displayname, userinfo10.id
  • Buffers: shared hit=22
83. 0.159 1.649 ↑ 1.0 386 1

Hash (cost=10.86..10.86 rows=386 width=41) (actual time=1.649..1.649 rows=386 loops=1)

  • Output: billingrate11.name, billingrate11.id
  • Buckets: 1024 Batches: 1 Memory Usage: 36kB
  • Buffers: shared hit=2 read=5
84. 1.490 1.490 ↑ 1.0 386 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.billingrate billingrate11 (cost=0.00..10.86 rows=386 width=41) (actual time=0.005..1.490 rows=386 loops=1)

  • Output: billingrate11.name, billingrate11.id
  • Buffers: shared hit=2 read=5
85. 37.411 89.228 ↓ 1.0 88,828 1

Hash (cost=3,515.24..3,515.24 rows=88,724 width=63) (actual time=89.228..89.228 rows=88,828 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buckets: 131072 Batches: 1 Memory Usage: 9470kB
  • Buffers: shared read=2628
86. 51.817 51.817 ↓ 1.0 88,828 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.taskdenormalizedhierarchy tdh (cost=0.00..3,515.24 rows=88,724 width=63) (actual time=0.386..51.817 rows=88,828 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buffers: shared read=2628