explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Kqoq

Settings
# exclusive inclusive rows x rows loops node
1. 747.961 751,627.747 ↑ 9.2 375,596 1

Hash Left Join (cost=1,634,235.20..9,633,830.94 rows=3,464,553 width=387) (actual time=39,201.392..751,627.747 rows=375,596 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=8824062 read=355044 written=30620
2.          

Initplan (forHash Left Join)

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.002..0.003 rows=1 loops=1)

  • Output: systeminformation.basecurrencyid
  • Buffers: shared hit=1
4. 367.527 750,751.136 ↑ 9.2 375,596 1

Hash Left Join (cost=1,629,609.90..9,581,568.04 rows=3,464,553 width=328) (actual time=39,072.251..750,751.136 rows=375,596 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=8824060 read=352418 written=30620
5. 388.868 750,382.912 ↑ 9.2 375,596 1

Hash Left Join (cost=1,629,594.21..9,533,914.75 rows=3,464,553 width=319) (actual time=39,071.535..750,382.912 rows=375,596 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=8824056 read=352415 written=30620
6. 452.049 749,993.066 ↑ 9.2 375,596 1

Hash Left Join (cost=1,629,548.61..9,486,304.94 rows=3,464,553 width=309) (actual time=39,070.538..749,993.066 rows=375,596 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=8824034 read=352415 written=30620
7. 426.858 749,540.325 ↑ 9.2 375,596 1

Hash Left Join (cost=1,629,500.90..9,462,005.36 rows=3,464,553 width=274) (actual time=39,069.831..749,540.325 rows=375,596 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=8824011 read=352407 written=30620
8. 896.130 749,113.396 ↑ 9.2 375,596 1

Hash Semi Join (cost=1,629,496.97..9,416,096.10 rows=3,464,553 width=328) (actual time=39,069.731..749,113.396 rows=375,596 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=8824009 read=352407 written=30620
9. 1,265.033 748,216.022 ↑ 16.0 1,483,339 1

Hash Left Join (cost=1,629,275.40..9,315,120.04 rows=23,699,554 width=328) (actual time=39,068.449..748,216.022 rows=1,483,339 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=8823825 read=352407 written=30620
10. 1,901.394 746,742.760 ↑ 16.0 1,483,339 1

Hash Left Join (cost=1,502,427.07..9,099,398.23 rows=23,699,554 width=270) (actual time=38,860.195..746,742.760 rows=1,483,339 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=8746671 read=352407 written=30620
11. 1,829.073 737,465.621 ↑ 16.0 1,483,339 1

Hash Left Join (cost=1,206,149.10..4,624,814.42 rows=23,699,554 width=225) (actual time=31,479.858..737,465.621 rows=1,483,339 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=8557136 read=352407 written=30620
12. 1,681.507 735,512.352 ↑ 16.0 1,483,339 1

Hash Join (cost=1,200,652.42..4,293,448.87 rows=23,699,554 width=200) (actual time=31,355.184..735,512.352 rows=1,483,339 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=8555508 read=352407 written=30620
13. 2,027.560 733,826.680 ↑ 16.0 1,483,339 1

Hash Join (cost=1,200,493.44..3,988,658.00 rows=23,699,554 width=156) (actual time=31,351.006..733,826.680 rows=1,483,339 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=8555466 read=352399 written=30620
14. 2,462.731 731,399.071 ↑ 16.0 1,487,867 1

Nested Loop (cost=1,183,482.96..3,645,393.07 rows=23,802,372 width=168) (actual time=30,950.051..731,399.071 rows=1,487,867 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=8555439 read=338814 written=30620
15. 1,888.408 711,081.936 ↓ 1.0 1,487,867 1

Hash Join (cost=1,183,482.54..1,649,793.73 rows=1,487,801 width=144) (actual time=30,948.180..711,081.936 rows=1,487,867 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=1669191 read=336880 written=30620
16. 325,631.861 709,191.012 ↓ 1.0 1,489,222 1

Hash Left Join (cost=1,183,237.82..1,629,091.75 rows=1,487,801 width=84) (actual time=30,945.635..709,191.012 rows=1,489,222 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=1669010 read=336880 written=30620
17. 343,151.365 383,493.345 ↓ 1.0 1,489,222 1

Hash Left Join (cost=1,179,615.53..1,595,713.44 rows=1,487,801 width=134) (actual time=30,878.762..383,493.345 rows=1,489,222 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=1667406 read=336858 written=30620
18. 2,152.377 40,340.170 ↓ 1.0 1,489,222 1

Merge Left Join (cost=1,179,522.37..1,565,864.26 rows=1,487,801 width=188) (actual time=30,876.131..40,340.170 rows=1,489,222 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=1667271 read=336858 written=30620
19. 2,028.016 34,653.966 ↓ 1.0 1,489,222 1

Merge Left Join (cost=1,179,521.81..1,209,023.28 rows=1,487,801 width=130) (actual time=30,876.112..34,653.966 rows=1,489,222 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=189550 read=279774 written=30312
20. 2,362.246 24,016.849 ↓ 1.0 1,489,222 1

Sort (cost=744,521.92..748,241.42 rows=1,487,801 width=72) (actual time=23,202.192..24,016.849 rows=1,489,222 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: 258018kB
  • Buffers: shared hit=15 read=279774 written=30312
21. 678.845 21,654.603 ↓ 1.0 1,489,222 1

Append (cost=192,015.36..591,986.98 rows=1,487,801 width=72) (actual time=6,174.069..21,654.603 rows=1,489,222 loops=1)

  • Buffers: shared hit=11 read=279774 written=30312
22. 717.026 20,975.206 ↓ 1.0 1,489,221 1

Subquery Scan on *SELECT* 1 (cost=192,015.36..591,984.93 rows=1,487,800 width=72) (actual time=6,174.067..20,975.206 rows=1,489,221 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid
  • Buffers: shared hit=11 read=279772 written=30312
23. 3,270.198 20,258.180 ↓ 1.0 1,489,221 1

Hash Left Join (cost=192,015.36..577,106.93 rows=1,487,800 width=237) (actual time=6,174.065..20,258.180 rows=1,489,221 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=11 read=279772 written=30312
24. 1,361.658 12,965.924 ↓ 1.0 1,489,221 1

Hash Right Join (cost=65,167.03..370,289.35 rows=1,487,800 width=179) (actual time=2,151.130..12,965.924 rows=1,489,221 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=6 read=202623 written=18903
25. 9,462.512 9,462.512 ↓ 1.0 1,318,768 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata tembillingrate (cost=0.00..287,038.49 rows=1,315,187 width=74) (actual time=0.484..9,462.512 rows=1,318,768 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: 5188309
  • Buffers: shared hit=3 read=189532 written=18903
26. 815.221 2,141.754 ↓ 1.0 1,489,221 1

Hash (cost=46,569.53..46,569.53 rows=1,487,800 width=121) (actual time=2,141.754..2,141.754 rows=1,489,221 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: 237267kB
  • Buffers: shared hit=3 read=13091
27. 742.949 1,326.533 ↓ 1.0 1,489,221 1

Nested Loop (cost=0.00..46,569.53 rows=1,487,800 width=121) (actual time=0.952..1,326.533 rows=1,489,221 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
28. 0.007 0.456 ↑ 1.0 1 1

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

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid
  • Buffers: shared hit=1 read=1
29. 0.003 0.003 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.systeminformation si (cost=0.00..1.01 rows=1 width=33) (actual time=0.002..0.003 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 hit=1
30. 0.446 0.446 ↑ 1.0 1 1

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentry te (cost=0.00..31,689.50 rows=1,487,800 width=56) (actual time=0.495..583.128 rows=1,489,221 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=2 read=13090
32. 0.003 4,022.058 ↓ 0.0 0 1

Hash (cost=126,848.31..126,848.31 rows=1 width=74) (actual time=4,022.058..4,022.058 rows=0 loops=1)

  • Output: temdbreaktype.uri, temdbreaktype.timeentryid
  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=5 read=77149 written=11409
33. 4,022.055 4,022.055 ↓ 0.0 0 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata temdbreaktype (cost=0.56..126,848.31 rows=1 width=74) (actual time=4,022.055..4,022.055 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=5 read=77149 written=11409
34. 0.000 0.552 ↑ 1.0 1 1

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

Nested Loop (cost=0.00..2.03 rows=1 width=24) (actual time=0.550..0.552 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
36. 0.524 0.524 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffentries toe (cost=0.00..1.01 rows=1 width=24) (actual time=0.523..0.524 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
37. 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.008..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
38. 2,397.388 8,609.101 ↓ 1.0 1,449,788 1

Sort (cost=434,999.89..438,615.11 rows=1,446,085 width=74) (actual time=7,673.912..8,609.101 rows=1,449,788 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Sort Key: timeentrymetadata15.timeentryid
  • Sort Method: quicksort Memory: 253029kB
  • Buffers: shared hit=189535
39. 6,211.713 6,211.713 ↓ 1.0 1,449,788 1

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

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Filter: (upper(timeentrymetadata15.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text)
  • Rows Removed by Filter: 5057289
  • Buffers: shared hit=189535
40. 1,043.831 3,533.827 ↓ 1.0 1,457,428 1

Materialize (cost=0.56..334,565.03 rows=1,454,644 width=74) (actual time=0.015..3,533.827 rows=1,457,428 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=1477721 read=57084 written=308
41. 2,489.996 2,489.996 ↓ 1.0 1,457,428 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata13 (cost=0.56..330,928.42 rows=1,454,644 width=74) (actual time=0.013..2,489.996 rows=1,457,428 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=1477721 read=57084 written=308
42. 0.903 1.810 ↓ 1.0 2,836 1

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

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

  • Output: project14.id
  • Heap Fetches: 339
  • Buffers: shared hit=135
44. 32.566 65.806 ↓ 1.0 88,828 1

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

  • Output: task16.id, task16.projectid
  • Buckets: 131072 Batches: 1 Memory Usage: 4494kB
  • Buffers: shared hit=1604 read=22
45. 33.240 33.240 ↓ 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.006..33.240 rows=88,828 loops=1)

  • Output: task16.id, task16.projectid
  • Buffers: shared hit=1604 read=22
46. 1.174 2.516 ↓ 1.0 2,836 1

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

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

  • Output: pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid
  • Buffers: shared hit=181
48. 17,854.404 17,854.404 ↑ 16.0 1 1,487,867

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

  • 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=6886248 read=1934
49. 64.087 400.049 ↓ 1.0 135,888 1

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

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Buckets: 262144 Batches: 1 Memory Usage: 8949kB
  • Buffers: shared hit=24 read=13585
50. 335.962 335.962 ↓ 1.0 135,888 1

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

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Filter: (tslist.timesheetstatus = 2)
  • Rows Removed by Filter: 460
  • Buffers: shared hit=24 read=13585
51. 0.533 4.165 ↓ 1.1 1,006 1

Hash (cost=147.04..147.04 rows=955 width=56) (actual time=4.165..4.165 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=42 read=8
52. 0.581 3.632 ↓ 1.1 1,006 1

Hash Join (cost=74.17..147.04 rows=955 width=56) (actual time=1.363..3.632 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=42 read=8
53. 0.595 3.015 ↓ 1.1 1,006 1

Hash Join (cost=72.05..131.78 rows=955 width=46) (actual time=1.317..3.015 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=41 read=8
54. 0.829 1.834 ↓ 1.0 1,006 1

Hash Join (cost=43.52..89.96 rows=1,001 width=38) (actual time=0.718..1.834 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=35 read=8
55. 0.302 0.302 ↑ 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.302 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=19 read=3
56. 0.336 0.703 ↓ 1.0 1,006 1

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

  • Output: login.loginname, login.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 53kB
  • Buffers: shared hit=16 read=5
57. 0.367 0.367 ↓ 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.367 rows=1,006 loops=1)

  • Output: login.loginname, login.userid
  • Buffers: shared hit=16 read=5
58. 0.310 0.586 ↓ 1.0 1,006 1

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

  • Output: du.departmentid, du.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 48kB
  • Buffers: shared hit=6
59. 0.276 0.276 ↓ 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.276 rows=1,006 loops=1)

  • Output: du.departmentid, du.userid
  • Buffers: shared hit=6
60. 0.018 0.036 ↑ 1.0 50 1

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

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

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

  • Output: dep.name, dep.id
  • Buffers: shared hit=1
62. 36.250 124.196 ↓ 1.0 88,828 1

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

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

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

  • Output: tk.name, tk.id, tk.code
  • Hash Cond: (tk.estimatedcostcurrencyid = exchangerate.fixedcurrencyid)
  • Buffers: shared hit=1628
64. 24.619 24.619 ↓ 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.619 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
65. 0.008 0.033 ↑ 1.0 7 1

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.exchangerate (cost=0.00..2.35 rows=7 width=4) (actual time=0.017..0.025 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
67. 365.241 7,375.745 ↓ 1.0 739,574 1

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

  • Output: timeentrymetadata7.text, timeentrymetadata7.timeentryid
  • Buckets: 1048576 Batches: 1 Memory Usage: 75639kB
  • Buffers: shared hit=189535
68. 7,010.504 7,010.504 ↓ 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.020..7,010.504 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: 5767503
  • Buffers: shared hit=189535
69. 0.002 208.229 ↓ 0.0 0 1

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

  • Output: timeentrymetadata17.timeentryid, timeentrymetadata17.uri
  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=77154
70. 208.227 208.227 ↓ 0.0 0 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata17 (cost=0.56..126,848.31 rows=1 width=74) (actual time=208.227..208.227 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=77154
71. 0.134 1.244 ↓ 1.0 421 1

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project project19 (cost=0.00..216.40 rows=414 width=4) (actual time=0.011..1.110 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
73. 0.024 0.071 ↑ 1.0 65 1

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

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

  • Output: clients18.id
  • Heap Fetches: 0
  • Buffers: shared hit=2
75. 0.027 0.692 ↑ 1.0 65 1

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

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Buckets: 1024 Batches: 1 Memory Usage: 12kB
  • Buffers: shared hit=23 read=8
76. 0.289 0.665 ↑ 1.0 65 1

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

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Hash Cond: (userinfo9.id = cl.clientmanageruserid)
  • Buffers: shared hit=23 read=8
77. 0.274 0.274 ↑ 1.0 1,006 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo userinfo9 (cost=0.00..32.49 rows=1,049 width=18) (actual time=0.002..0.274 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=21 read=1
78. 0.030 0.102 ↑ 1.0 65 1

Hash (cost=9.65..9.65 rows=65 width=33) (actual time=0.102..0.102 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
79. 0.072 0.072 ↑ 1.0 65 1

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

  • Output: cl.name, cl.id, cl.code, cl.clientmanageruserid
  • Buffers: shared hit=2 read=7
80. 0.398 0.978 ↑ 1.0 1,006 1

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

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

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

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

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

  • Output: billingrate11.name, billingrate11.id
  • Buckets: 1024 Batches: 1 Memory Usage: 36kB
  • Buffers: shared hit=4 read=3
83. 0.545 0.545 ↑ 1.0 386 1

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

  • Output: billingrate11.name, billingrate11.id
  • Buffers: shared hit=4 read=3
84. 56.363 128.647 ↓ 1.0 88,828 1

Hash (cost=3,515.24..3,515.24 rows=88,724 width=63) (actual time=128.647..128.647 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
85. 72.284 72.284 ↓ 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.390..72.284 rows=88,828 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buffers: shared hit=2 read=2626
Planning time : 43.551 ms
Execution time : 751,775.209 ms