explain.depesz.com

PostgreSQL's explain analyze made readable

Result: r3y3 : withorder by

Settings
# exclusive inclusive rows x rows loops node
1. 5,999.485 736,770.557 ↑ 9.2 375,843 1

Sort (cost=10,362,069.81..10,370,731.19 rows=3,464,553 width=387) (actual time=736,602.199..736,770.557 rows=375,843 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: 203977kB
  • Buffers: shared hit=8827074 read=352781 written=36092
2.          

Initplan (forSort)

3. 0.003 0.003 ↑ 1.0 1 1

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

  • Output: systeminformation.basecurrencyid
  • Buffers: shared hit=1
4. 758.761 730,771.069 ↑ 9.2 375,843 1

Hash Left Join (cost=1,634,264.19..9,633,874.93 rows=3,464,553 width=387) (actual time=34,293.150..730,771.069 rows=375,843 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=8827059 read=352781 written=36092
5. 358.886 729,937.970 ↑ 9.2 375,843 1

Hash Left Join (cost=1,629,639.90..9,581,613.04 rows=3,464,553 width=328) (actual time=34,218.348..729,937.970 rows=375,843 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=8827057 read=350155 written=36092
6. 387.975 729,578.767 ↑ 9.2 375,843 1

Hash Left Join (cost=1,629,624.21..9,533,959.75 rows=3,464,553 width=319) (actual time=34,218.015..729,578.767 rows=375,843 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=8827055 read=350150 written=36092
7. 435.624 729,189.889 ↑ 9.2 375,843 1

Hash Left Join (cost=1,629,578.61..9,486,349.94 rows=3,464,553 width=309) (actual time=34,217.095..729,189.889 rows=375,843 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=8827033 read=350150 written=36092
8. 407.564 728,753.544 ↑ 9.2 375,843 1

Hash Left Join (cost=1,629,530.90..9,462,050.36 rows=3,464,553 width=274) (actual time=34,216.358..728,753.544 rows=375,843 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=8827011 read=350141 written=36092
9. 859.704 728,345.922 ↑ 9.2 375,843 1

Hash Semi Join (cost=1,629,526.97..9,416,141.10 rows=3,464,553 width=328) (actual time=34,216.274..728,345.922 rows=375,843 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=8827009 read=350141 written=36092
10. 1,273.356 727,484.959 ↑ 16.0 1,483,586 1

Hash Left Join (cost=1,629,305.40..9,315,165.04 rows=23,699,554 width=328) (actual time=34,214.994..727,484.959 rows=1,483,586 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=8826828 read=350141 written=36092
11. 1,918.947 726,005.857 ↑ 16.0 1,483,586 1

Hash Left Join (cost=1,502,442.07..9,099,428.23 rows=23,699,554 width=270) (actual time=34,009.224..726,005.857 rows=1,483,586 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=8749659 read=350141 written=36092
12. 1,848.268 717,302.599 ↑ 16.0 1,483,586 1

Hash Left Join (cost=1,206,164.10..4,624,844.42 rows=23,699,554 width=225) (actual time=27,220.344..717,302.599 rows=1,483,586 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=8560124 read=350141 written=36092
13. 1,629.879 715,333.327 ↑ 16.0 1,483,586 1

Hash Join (cost=1,200,667.42..4,293,478.87 rows=23,699,554 width=200) (actual time=27,099.208..715,333.327 rows=1,483,586 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=8558496 read=350141 written=36092
14. 1,897.188 713,698.306 ↑ 16.0 1,483,586 1

Hash Join (cost=1,200,508.44..3,988,688.00 rows=23,699,554 width=156) (actual time=27,094.058..713,698.306 rows=1,483,586 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=8558464 read=350123 written=36092
15. 2,594.944 711,586.923 ↑ 16.0 1,488,008 1

Nested Loop (cost=1,183,497.96..3,645,423.07 rows=23,802,372 width=168) (actual time=26,879.555..711,586.923 rows=1,488,008 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=8558424 read=336554 written=36092
16. 1,771.298 692,623.891 ↓ 1.0 1,488,008 1

Hash Join (cost=1,183,497.54..1,649,823.73 rows=1,487,801 width=144) (actual time=26,879.057..692,623.891 rows=1,488,008 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=1671470 read=334622 written=36092
17. 319,885.854 690,850.190 ↓ 1.0 1,489,363 1

Hash Left Join (cost=1,183,252.82..1,629,121.75 rows=1,487,801 width=84) (actual time=26,876.639..690,850.190 rows=1,489,363 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=1671289 read=334622 written=36092
18. 334,800.611 370,892.390 ↓ 1.0 1,489,363 1

Hash Left Join (cost=1,179,630.53..1,595,743.44 rows=1,487,801 width=134) (actual time=26,804.324..370,892.390 rows=1,489,363 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=1669692 read=334593 written=36092
19. 2,107.915 36,090.072 ↓ 1.0 1,489,363 1

Merge Left Join (cost=1,179,537.37..1,565,894.26 rows=1,487,801 width=188) (actual time=26,802.351..36,090.072 rows=1,489,363 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=1669557 read=334593 written=36092
20. 2,012.193 30,509.546 ↓ 1.0 1,489,363 1

Merge Left Join (cost=1,179,536.81..1,209,038.28 rows=1,487,801 width=130) (actual time=26,802.331..30,509.546 rows=1,489,363 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=189555 read=279780 written=35552
21. 2,364.537 19,333.702 ↓ 1.0 1,489,363 1

Sort (cost=744,536.92..748,256.42 rows=1,487,801 width=72) (actual time=18,528.351..19,333.702 rows=1,489,363 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: 258030kB
  • Buffers: shared hit=20 read=279780 written=35552
22. 661.261 16,969.165 ↓ 1.0 1,489,363 1

Append (cost=192,030.36..592,001.98 rows=1,487,801 width=72) (actual time=2,538.742..16,969.165 rows=1,489,363 loops=1)

  • Buffers: shared hit=20 read=279780 written=35552
23. 708.420 16,307.856 ↓ 1.0 1,489,362 1

Subquery Scan on *SELECT* 1 (cost=192,030.36..591,999.93 rows=1,487,800 width=72) (actual time=2,538.740..16,307.856 rows=1,489,362 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid
  • Buffers: shared hit=20 read=279778 written=35552
24. 3,641.842 15,599.436 ↓ 1.0 1,489,362 1

Hash Left Join (cost=192,030.36..577,121.93 rows=1,487,800 width=237) (actual time=2,538.739..15,599.436 rows=1,489,362 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=20 read=279778 written=35552
25. 1,374.979 11,470.149 ↓ 1.0 1,489,362 1

Hash Right Join (cost=65,167.03..370,289.35 rows=1,487,800 width=179) (actual time=2,051.154..11,470.149 rows=1,489,362 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=13 read=202616 written=35552
26. 8,045.133 8,045.133 ↓ 1.0 1,318,905 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata tembillingrate (cost=0.00..287,038.49 rows=1,315,187 width=74) (actual time=0.024..8,045.133 rows=1,318,905 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: 5188787
  • Buffers: shared hit=6 read=189529 written=35552
27. 745.570 2,050.037 ↓ 1.0 1,489,362 1

Hash (cost=46,569.53..46,569.53 rows=1,487,800 width=121) (actual time=2,050.037..2,050.037 rows=1,489,362 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: 237285kB
  • Buffers: shared hit=7 read=13087
28. 731.917 1,304.467 ↓ 1.0 1,489,362 1

Nested Loop (cost=0.00..46,569.53 rows=1,487,800 width=121) (actual time=0.037..1,304.467 rows=1,489,362 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime
  • Buffers: shared hit=7 read=13087
29. 0.008 0.025 ↑ 1.0 1 1

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.systeminformation si (cost=0.00..1.01 rows=1 width=33) (actual time=0.009..0.009 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.008 0.008 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.projectsysteminformation psi (cost=0.00..1.01 rows=1 width=32) (actual time=0.008..0.008 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. 572.525 572.525 ↓ 1.0 1,489,362 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentry te (cost=0.00..31,689.50 rows=1,487,800 width=56) (actual time=0.012..572.525 rows=1,489,362 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=7 read=13085
33. 0.001 487.445 ↓ 0.0 0 1

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

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

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata temdbreaktype (cost=0.56..126,863.31 rows=1 width=74) (actual time=487.444..487.444 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=77162
35. 0.000 0.048 ↑ 1.0 1 1

Subquery Scan on *SELECT* 2 (cost=0.00..2.04 rows=1 width=72) (actual time=0.046..0.048 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.048 ↑ 1.0 1 1

Nested Loop (cost=0.00..2.03 rows=1 width=24) (actual time=0.046..0.048 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.024 0.024 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffentries toe (cost=0.00..1.01 rows=1 width=24) (actual time=0.023..0.024 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.008 0.008 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffs toff (cost=0.00..1.01 rows=1 width=8) (actual time=0.007..0.008 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,478.232 9,163.651 ↓ 1.0 1,449,929 1

Sort (cost=434,999.89..438,615.11 rows=1,446,085 width=74) (actual time=8,273.972..9,163.651 rows=1,449,929 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Sort Key: timeentrymetadata15.timeentryid
  • Sort Method: quicksort Memory: 253049kB
  • Buffers: shared hit=189535
40. 6,685.419 6,685.419 ↓ 1.0 1,449,929 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata15 (cost=0.00..287,038.49 rows=1,446,085 width=74) (actual time=0.020..6,685.419 rows=1,449,929 loops=1)

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

Materialize (cost=0.56..334,580.03 rows=1,454,644 width=74) (actual time=0.018..3,472.611 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=1480002 read=54813 written=540
42. 2,452.687 2,452.687 ↓ 1.0 1,457,422 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata13 (cost=0.56..330,943.42 rows=1,454,644 width=74) (actual time=0.014..2,452.687 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=1480002 read=54813 written=540
43. 0.854 1.707 ↓ 1.0 2,836 1

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

  • Output: project14.id
  • Buckets: 4096 Batches: 1 Memory Usage: 132kB
  • Buffers: shared hit=135
44. 0.853 0.853 ↓ 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.010..0.853 rows=2,836 loops=1)

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

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

  • Output: task16.id, task16.projectid
  • Buckets: 131072 Batches: 1 Memory Usage: 4494kB
  • Buffers: shared hit=1597 read=29
46. 43.444 43.444 ↓ 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..43.444 rows=88,828 loops=1)

  • Output: task16.id, task16.projectid
  • Buffers: shared hit=1597 read=29
47. 1.063 2.403 ↓ 1.0 2,836 1

Hash (cost=209.32..209.32 rows=2,832 width=68) (actual time=2.403..2.403 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.340 1.340 ↓ 1.0 2,836 1

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

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

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,008)

  • 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=6886954 read=1932
50. 56.644 214.195 ↓ 1.0 135,915 1

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

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Buckets: 262144 Batches: 1 Memory Usage: 8950kB
  • Buffers: shared hit=40 read=13569
51. 157.551 157.551 ↓ 1.0 135,915 1

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

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Filter: (tslist.timesheetstatus = 2)
  • Rows Removed by Filter: 433
  • Buffers: shared hit=40 read=13569
52. 0.513 5.142 ↓ 1.1 1,006 1

Hash (cost=147.04..147.04 rows=955 width=56) (actual time=5.142..5.142 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=32 read=18
53. 0.560 4.629 ↓ 1.1 1,006 1

Hash Join (cost=74.17..147.04 rows=955 width=56) (actual time=2.357..4.629 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=32 read=18
54. 0.576 4.034 ↓ 1.1 1,006 1

Hash Join (cost=72.05..131.78 rows=955 width=46) (actual time=2.319..4.034 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=31 read=18
55. 0.856 2.867 ↓ 1.0 1,006 1

Hash Join (cost=43.52..89.96 rows=1,001 width=38) (actual time=1.722..2.867 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=28 read=15
56. 0.299 0.299 ↑ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo ui (cost=0.00..32.49 rows=1,049 width=26) (actual time=0.002..0.299 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=16 read=6
57. 0.333 1.712 ↓ 1.0 1,006 1

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

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

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

  • Output: login.loginname, login.userid
  • Buffers: shared hit=12 read=9
59. 0.308 0.591 ↓ 1.0 1,006 1

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

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

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

  • Output: du.departmentid, du.userid
  • Buffers: shared hit=3 read=3
61. 0.022 0.035 ↑ 1.0 50 1

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

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

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

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

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

  • Output: tk.name, tk.id, tk.code
  • Buckets: 131072 Batches: 1 Memory Usage: 6576kB
  • Buffers: shared hit=1628
64. 62.103 86.314 ↓ 1.0 88,828 1

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

  • Output: tk.name, tk.id, tk.code
  • Hash Cond: (tk.estimatedcostcurrencyid = exchangerate.fixedcurrencyid)
  • Buffers: shared hit=1628
65. 24.180 24.180 ↓ 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.004..24.180 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.002 0.031 ↑ 1.0 7 1

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.exchangerate (cost=0.00..2.35 rows=7 width=4) (actual time=0.019..0.029 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=2
68. 390.340 6,784.311 ↓ 1.0 739,574 1

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

  • Output: timeentrymetadata7.text, timeentrymetadata7.timeentryid
  • Buckets: 1048576 Batches: 1 Memory Usage: 75639kB
  • Buffers: shared hit=189535
69. 6,393.971 6,393.971 ↓ 1.0 739,574 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata7 (cost=0.00..287,038.49 rows=739,158 width=61) (actual time=0.019..6,393.971 rows=739,574 loops=1)

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

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

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

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata17 (cost=0.56..126,863.31 rows=1 width=74) (actual time=205.744..205.744 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=77169
72. 0.136 1.259 ↓ 1.0 421 1

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project project19 (cost=0.00..216.40 rows=414 width=4) (actual time=0.008..1.123 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.035 0.058 ↑ 1.0 65 1

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

  • Output: clients18.id
  • Buckets: 1024 Batches: 1 Memory Usage: 11kB
  • Buffers: shared hit=2
75. 0.023 0.023 ↑ 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.023 rows=65 loops=1)

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

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

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Buckets: 1024 Batches: 1 Memory Usage: 12kB
  • Buffers: shared hit=22 read=9
77. 0.324 0.693 ↑ 1.0 65 1

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

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Hash Cond: (userinfo9.id = cl.clientmanageruserid)
  • Buffers: shared hit=22 read=9
78. 0.263 0.263 ↑ 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.263 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=20 read=2
79. 0.028 0.106 ↑ 1.0 65 1

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

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

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

  • Output: cl.name, cl.id, cl.code, cl.clientmanageruserid
  • Buffers: shared hit=2 read=7
81. 0.386 0.903 ↑ 1.0 1,006 1

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

  • Output: userinfo10.displayname, userinfo10.id
  • Buckets: 2048 Batches: 1 Memory Usage: 68kB
  • Buffers: shared hit=22
82. 0.517 0.517 ↑ 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.517 rows=1,006 loops=1)

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

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

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

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

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

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

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buckets: 131072 Batches: 1 Memory Usage: 9470kB
  • Buffers: shared hit=2 read=2626
86. 38.741 38.741 ↓ 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.014..38.741 rows=88,828 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buffers: shared hit=2 read=2626
Planning time : 22.902 ms
Execution time : 736,861.167 ms