explain.depesz.com

PostgreSQL's explain analyze made readable

Result: loNx

Settings
# exclusive inclusive rows x rows loops node
1. 3,529.634 224,347.534 ↑ 4.1 239,513 1

Sort (cost=3,692,099.66..3,694,563.66 rows=985,602 width=387) (actual time=224,251.880..224,347.534 rows=239,513 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: 136563kB
  • Buffers: shared hit=2795960 read=293821 written=7592
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.002..0.003 rows=1 loops=1)

  • Output: systeminformation.basecurrencyid
  • Buffers: shared hit=1
4. 390.839 220,817.897 ↑ 4.1 239,513 1

Hash Left Join (cost=1,229,818.63..3,593,978.78 rows=985,602 width=387) (actual time=31,102.061..220,817.897 rows=239,513 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=2795940 read=293821 written=7592
5. 212.385 220,319.789 ↑ 4.1 239,513 1

Hash Left Join (cost=1,225,192.00..3,575,800.13 rows=985,602 width=328) (actual time=30,994.315..220,319.789 rows=239,513 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=2795938 read=291195 written=7592
6. 201.653 220,106.726 ↑ 4.1 239,513 1

Hash Left Join (cost=1,225,176.32..3,562,232.41 rows=985,602 width=319) (actual time=30,993.617..220,106.726 rows=239,513 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=2795933 read=291193 written=7592
7. 248.423 219,904.202 ↑ 4.1 239,513 1

Hash Left Join (cost=1,225,131.68..3,548,656.60 rows=985,602 width=309) (actual time=30,992.730..219,904.202 rows=239,513 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=2795911 read=291193 written=7592
8. 229.234 219,655.108 ↑ 4.1 239,513 1

Hash Left Join (cost=1,225,084.56..3,541,710.27 rows=985,602 width=274) (actual time=30,992.043..219,655.108 rows=239,513 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=2795887 read=291186 written=7592
9. 281.146 219,425.817 ↑ 4.1 239,513 1

Hash Semi Join (cost=1,225,080.63..3,528,647.11 rows=985,602 width=328) (actual time=30,991.963..219,425.817 rows=239,513 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=2795885 read=291186 written=7592
10. 332.356 219,143.445 ↑ 16.0 415,483 1

Hash Left Join (cost=1,224,858.92..3,500,032.27 rows=6,639,353 width=328) (actual time=30,990.720..219,143.445 rows=415,483 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=2795704 read=291186 written=7592
11. 505.981 218,604.119 ↑ 16.0 415,483 1

Hash Left Join (cost=1,097,563.44..3,347,839.16 rows=6,639,353 width=270) (actual time=30,783.734..218,604.119 rows=415,483 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=2718180 read=291182 written=7592
12. 412.283 211,630.982 ↑ 16.0 415,483 1

Hash Left Join (cost=801,114.11..2,104,569.10 rows=6,639,353 width=225) (actual time=24,311.964..211,630.982 rows=415,483 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=2528645 read=291182 written=7592
13. 406.657 211,099.044 ↑ 16.0 415,483 1

Hash Join (cost=795,612.88..2,007,776.76 rows=6,639,353 width=200) (actual time=24,191.823..211,099.044 rows=415,483 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=2527017 read=291182 written=7592
14. 419.877 210,687.309 ↑ 16.0 415,483 1

Hash Join (cost=795,452.35..1,916,325.13 rows=6,639,353 width=156) (actual time=24,186.730..210,687.309 rows=415,483 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=2526986 read=291163 written=7592
15. 750.342 209,802.834 ↑ 16.0 416,844 1

Nested Loop (cost=774,792.61..1,804,314.44 rows=6,655,314 width=168) (actual time=23,721.232..209,802.834 rows=416,844 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=2526974 read=273920 written=7592
16. 444.054 204,050.364 ↑ 1.0 416,844 1

Hash Join (cost=774,792.19..1,242,564.55 rows=417,760 width=144) (actual time=23,721.192..204,050.364 rows=416,844 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=429653 read=273112 written=7588
17. 84,203.146 203,602.049 ↑ 1.0 417,687 1

Hash Left Join (cost=774,547.38..1,236,575.54 rows=417,760 width=84) (actual time=23,716.897..203,602.049 rows=417,687 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=429472 read=273112 written=7588
18. 84,121.817 119,340.698 ↑ 1.0 417,687 1

Hash Left Join (cost=770,922.75..1,224,595.71 rows=417,760 width=134) (actual time=23,657.819..119,340.698 rows=417,687 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=428583 read=272375 written=7588
19. 484.093 35,217.251 ↑ 1.0 417,687 1

Hash Left Join (cost=770,829.48..1,216,147.24 rows=417,760 width=188) (actual time=23,656.155..35,217.251 rows=417,687 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
  • Hash Cond: ("*SELECT* 1".timeentryid = timeentrymetadata13.timeentryid)
  • Buffers: shared hit=428535 read=272375 written=7588
20. 486.857 27,654.863 ↓ 1.0 417,687 1

Hash Left Join (cost=465,460.12..849,300.57 rows=416,725 width=130) (actual time=16,568.828..27,654.863 rows=417,687 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid, timeentrymetadata15.uri
  • Hash Cond: ("*SELECT* 1".timeentryid = timeentrymetadata15.timeentryid)
  • Buffers: shared hit=239000 read=272375 written=7588
21. 212.397 15,890.918 ↓ 1.0 417,687 1

Append (cost=160,129.74..482,522.51 rows=416,585 width=72) (actual time=5,282.729..15,890.918 rows=417,687 loops=1)

  • Buffers: shared hit=238963 read=82877
22. 234.427 15,678.003 ↓ 1.0 417,686 1

Subquery Scan on *SELECT* 1 (cost=160,129.74..482,520.46 rows=416,584 width=72) (actual time=5,282.727..15,678.003 rows=417,686 loops=1)

  • Output: "*SELECT* 1".timeentryid, "*SELECT* 1".entrydate, "*SELECT* 1".duration, "*SELECT* 1".workduration, "*SELECT* 1".userid, "*SELECT* 1".billingrateid
  • Buffers: shared hit=238962 read=82876
23. 2,964.998 15,443.576 ↓ 1.0 417,686 1

Hash Left Join (cost=160,129.74..478,354.62 rows=416,584 width=237) (actual time=5,282.725..15,443.576 rows=417,686 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=238962 read=82876
24. 883.841 8,273.683 ↓ 1.0 417,686 1

Hash Right Join (cost=32,834.25..328,667.74 rows=416,584 width=179) (actual time=1,077.305..8,273.683 rows=417,686 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=238933 read=5377
25. 6,315.843 6,315.843 ↑ 1.0 1,319,891 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata tembillingrate (cost=0.00..287,184.80 rows=1,321,175 width=74) (actual time=1.089..6,315.843 rows=1,319,891 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: 5192906
  • Buffers: shared hit=189534 read=1
26. 244.004 1,073.999 ↓ 1.0 417,686 1

Hash (cost=27,626.95..27,626.95 rows=416,584 width=121) (actual time=1,073.999..1,073.999 rows=417,686 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime
  • Buckets: 524288 Batches: 1 Memory Usage: 65929kB
  • Buffers: shared hit=49399 read=5376
27. 233.726 829.995 ↓ 1.0 417,686 1

Nested Loop (cost=0.43..27,626.95 rows=416,584 width=121) (actual time=1.482..829.995 rows=417,686 loops=1)

  • Output: si.tenantslug, psi.projectcustombillingrateid, psi.usercustombillingrateid, te.id, te.userid, te.entrydate, te.hours, te.intime, te.outtime
  • Buffers: shared hit=49399 read=5376
28. 0.009 0.022 ↑ 1.0 1 1

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

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

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

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.projectsysteminformation psi (cost=0.00..1.01 rows=1 width=32) (actual time=0.007..0.009 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. 596.247 596.247 ↓ 1.0 417,686 1

Index Scan using ixte2entrydate on d39c603ba5ee46da9a42069eec872cf2.timeentry te (cost=0.43..23,459.08 rows=416,584 width=56) (actual time=1.460..596.247 rows=417,686 loops=1)

  • Output: te.id, te.userid, te.entrydate, te.timeallocationtype, te.hours, te.intime, te.outtime
  • Index Cond: ((te.entrydate >= '2017-01-01'::date) AND (te.entrydate <= '2019-05-14'::date))
  • Filter: ((te.timeallocationtype <> 2) OR (te.timeallocationtype IS NULL))
  • Buffers: shared hit=49398 read=5375
32. 0.001 4,204.895 ↓ 0.0 0 1

Hash (cost=127,295.47..127,295.47 rows=1 width=74) (actual time=4,204.895..4,204.895 rows=0 loops=1)

  • Output: temdbreaktype.uri, temdbreaktype.timeentryid
  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=29 read=77499
33. 4,204.894 4,204.894 ↓ 0.0 0 1

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata temdbreaktype (cost=0.56..127,295.47 rows=1 width=74) (actual time=4,204.894..4,204.894 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=29 read=77499
34. 0.002 0.518 ↑ 1.0 1 1

Subquery Scan on *SELECT* 2 (cost=0.00..2.05 rows=1 width=72) (actual time=0.516..0.518 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 hit=1 read=1
35. 0.007 0.516 ↑ 1.0 1 1

Nested Loop (cost=0.00..2.04 rows=1 width=24) (actual time=0.514..0.516 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 hit=1 read=1
36. 0.507 0.507 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffentries toe (cost=0.00..1.01 rows=1 width=24) (actual time=0.506..0.507 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 >= '2017-01-01'::date) AND (toe.entrydate <= '2019-05-14'::date))
  • Buffers: shared read=1
37. 0.002 0.002 ↑ 1.0 1 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeoffs toff (cost=0.00..1.01 rows=1 width=8) (actual time=0.002..0.002 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 hit=1
38. 723.315 11,277.088 ↑ 1.0 1,450,989 1

Hash (cost=287,184.80..287,184.80 rows=1,451,646 width=74) (actual time=11,277.088..11,277.088 rows=1,450,989 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Buckets: 2097152 Batches: 1 Memory Usage: 174667kB
  • Buffers: shared hit=37 read=189498 written=7588
39. 10,553.773 10,553.773 ↑ 1.0 1,450,989 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata15 (cost=0.00..287,184.80 rows=1,451,646 width=74) (actual time=0.018..10,553.773 rows=1,450,989 loops=1)

  • Output: timeentrymetadata15.timeentryid, timeentrymetadata15.uri
  • Filter: (upper(timeentrymetadata15.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text)
  • Rows Removed by Filter: 5061808
  • Buffers: shared hit=37 read=189498 written=7588
40. 699.817 7,078.295 ↓ 1.0 1,457,557 1

Hash (cost=287,184.80..287,184.80 rows=1,454,765 width=74) (actual time=7,078.295..7,078.295 rows=1,457,557 loops=1)

  • Output: timeentrymetadata13.timeentryid, timeentrymetadata13.uri
  • Buckets: 2097152 Batches: 1 Memory Usage: 177779kB
  • Buffers: shared hit=189535
41. 6,378.478 6,378.478 ↓ 1.0 1,457,557 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata13 (cost=0.00..287,184.80 rows=1,454,765 width=74) (actual time=0.193..6,378.478 rows=1,457,557 loops=1)

  • Output: timeentrymetadata13.timeentryid, timeentrymetadata13.uri
  • Filter: (upper(timeentrymetadata13.key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text)
  • Rows Removed by Filter: 5055240
  • Buffers: shared hit=189535
42. 0.827 1.630 ↑ 1.0 2,836 1

Hash (cost=57.82..57.82 rows=2,836 width=4) (actual time=1.630..1.630 rows=2,836 loops=1)

  • Output: project14.id
  • Buckets: 4096 Batches: 1 Memory Usage: 132kB
  • Buffers: shared hit=48
43. 0.803 0.803 ↑ 1.0 2,836 1

Index Only Scan using project_pkey on d39c603ba5ee46da9a42069eec872cf2.project project14 (cost=0.28..57.82 rows=2,836 width=4) (actual time=0.036..0.803 rows=2,836 loops=1)

  • Output: project14.id
  • Heap Fetches: 73
  • Buffers: shared hit=48
44. 28.691 58.205 ↓ 1.0 88,837 1

Hash (cost=2,514.28..2,514.28 rows=88,828 width=8) (actual time=58.205..58.205 rows=88,837 loops=1)

  • Output: task16.id, task16.projectid
  • Buckets: 131072 Batches: 1 Memory Usage: 4495kB
  • Buffers: shared hit=889 read=737
45. 29.514 29.514 ↓ 1.0 88,837 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.task task16 (cost=0.00..2,514.28 rows=88,828 width=8) (actual time=0.003..29.514 rows=88,837 loops=1)

  • Output: task16.id, task16.projectid
  • Buffers: shared hit=889 read=737
46. 1.960 4.261 ↑ 1.0 2,836 1

Hash (cost=209.36..209.36 rows=2,836 width=68) (actual time=4.261..4.261 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. 2.301 2.301 ↑ 1.0 2,836 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project pj (cost=0.00..209.36 rows=2,836 width=68) (actual time=0.006..2.301 rows=2,836 loops=1)

  • Output: pj.code, pj.id, pj.name, pj.clientid, pj.projectleaderapproverid
  • Buffers: shared hit=181
48. 5,002.128 5,002.128 ↑ 16.0 1 416,844

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=416,844)

  • 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=2097321 read=808 written=4
49. 65.654 464.598 ↑ 1.0 136,026 1

Hash (cost=18,959.41..18,959.41 rows=136,026 width=20) (actual time=464.598..464.598 rows=136,026 loops=1)

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Buckets: 262144 Batches: 1 Memory Usage: 8956kB
  • Buffers: shared hit=12 read=17243
50. 398.944 398.944 ↑ 1.0 136,026 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.dm_timesheetlist_facts tslist (cost=0.00..18,959.41 rows=136,026 width=20) (actual time=0.454..398.944 rows=136,026 loops=1)

  • Output: tslist.timesheetstatus, tslist.timesheetid
  • Filter: (tslist.timesheetstatus = 2)
  • Rows Removed by Filter: 333
  • Buffers: shared hit=12 read=17243
51. 0.517 5.078 ↓ 1.0 1,007 1

Hash (cost=147.95..147.95 rows=1,006 width=56) (actual time=5.078..5.078 rows=1,007 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=31 read=19
52. 0.541 4.561 ↓ 1.0 1,007 1

Hash Join (cost=74.40..147.95 rows=1,006 width=56) (actual time=1.927..4.561 rows=1,007 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=31 read=19
53. 0.576 3.983 ↓ 1.0 1,007 1

Hash Join (cost=72.27..132.00 rows=1,006 width=46) (actual time=1.877..3.983 rows=1,007 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=30 read=19
54. 0.849 2.823 ↓ 1.0 1,007 1

Hash Join (cost=43.64..89.53 rows=1,006 width=38) (actual time=1.283..2.823 rows=1,007 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=24 read=19
55. 0.707 0.707 ↓ 1.0 1,007 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo ui (cost=0.00..32.06 rows=1,006 width=26) (actual time=0.002..0.707 rows=1,007 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
56. 0.331 1.267 ↓ 1.0 1,007 1

Hash (cost=31.06..31.06 rows=1,006 width=12) (actual time=1.267..1.267 rows=1,007 loops=1)

  • Output: login.loginname, login.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 53kB
  • Buffers: shared hit=8 read=13
57. 0.936 0.936 ↓ 1.0 1,007 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.login (cost=0.00..31.06 rows=1,006 width=12) (actual time=0.003..0.936 rows=1,007 loops=1)

  • Output: login.loginname, login.userid
  • Buffers: shared hit=8 read=13
58. 0.321 0.584 ↓ 1.0 1,007 1

Hash (cost=16.06..16.06 rows=1,006 width=8) (actual time=0.584..0.584 rows=1,007 loops=1)

  • Output: du.departmentid, du.userid
  • Buckets: 1024 Batches: 1 Memory Usage: 48kB
  • Buffers: shared hit=6
59. 0.263 0.263 ↓ 1.0 1,007 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.departmentusers du (cost=0.00..16.06 rows=1,006 width=8) (actual time=0.004..0.263 rows=1,007 loops=1)

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

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

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

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

  • Output: dep.name, dep.id
  • Buffers: shared hit=1
62. 35.527 119.655 ↓ 1.0 88,837 1

Hash (cost=4,390.88..4,390.88 rows=88,828 width=29) (actual time=119.655..119.655 rows=88,837 loops=1)

  • Output: tk.name, tk.id, tk.code
  • Buckets: 131072 Batches: 1 Memory Usage: 6577kB
  • Buffers: shared hit=1628
63. 60.867 84.128 ↓ 1.0 88,837 1

Hash Left Join (cost=2.44..4,390.88 rows=88,828 width=29) (actual time=0.045..84.128 rows=88,837 loops=1)

  • Output: tk.name, tk.id, tk.code
  • Hash Cond: (tk.estimatedcostcurrencyid = exchangerate.fixedcurrencyid)
  • Buffers: shared hit=1628
64. 23.228 23.228 ↓ 1.0 88,837 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.task tk (cost=0.00..2,514.28 rows=88,828 width=33) (actual time=0.003..23.228 rows=88,837 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.006 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.027 0.027 ↑ 1.0 7 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.exchangerate (cost=0.00..2.35 rows=7 width=4) (actual time=0.018..0.027 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. 386.804 6,467.156 ↑ 1.0 739,896 1

Hash (cost=287,184.80..287,184.80 rows=741,162 width=61) (actual time=6,467.156..6,467.156 rows=739,896 loops=1)

  • Output: timeentrymetadata7.text, timeentrymetadata7.timeentryid
  • Buckets: 1048576 Batches: 1 Memory Usage: 75666kB
  • Buffers: shared hit=189535
68. 6,080.352 6,080.352 ↑ 1.0 739,896 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata7 (cost=0.00..287,184.80 rows=741,162 width=61) (actual time=0.018..6,080.352 rows=739,896 loops=1)

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

Hash (cost=127,295.47..127,295.47 rows=1 width=74) (actual time=206.970..206.970 rows=0 loops=1)

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

Index Scan using ixtem2timeentryid on d39c603ba5ee46da9a42069eec872cf2.timeentrymetadata timeentrymetadata17 (cost=0.56..127,295.47 rows=1 width=74) (actual time=206.968..206.968 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=77524 read=4
71. 0.133 1.226 ↑ 1.0 420 1

Hash (cost=216.45..216.45 rows=421 width=4) (actual time=1.226..1.226 rows=420 loops=1)

  • Output: project19.id
  • Buckets: 1024 Batches: 1 Memory Usage: 23kB
  • Buffers: shared hit=181
72. 1.093 1.093 ↑ 1.0 420 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.project project19 (cost=0.00..216.45 rows=421 width=4) (actual time=0.010..1.093 rows=420 loops=1)

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

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

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

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

Hash (cost=46.30..46.30 rows=65 width=43) (actual time=0.671..0.671 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Buckets: 1024 Batches: 1 Memory Usage: 12kB
  • Buffers: shared hit=24 read=7
76. 0.281 0.640 ↑ 1.0 65 1

Hash Right Join (cost=10.46..46.30 rows=65 width=43) (actual time=0.622..0.640 rows=65 loops=1)

  • Output: cl.name, cl.id, cl.code, userinfo9.displayname
  • Hash Cond: (userinfo9.id = cl.clientmanageruserid)
  • Buffers: shared hit=24 read=7
77. 0.258 0.258 ↓ 1.0 1,007 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo userinfo9 (cost=0.00..32.06 rows=1,006 width=18) (actual time=0.003..0.258 rows=1,007 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=22
78. 0.032 0.101 ↑ 1.0 65 1

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

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

  • Output: cl.name, cl.id, cl.code, cl.clientmanageruserid
  • Buffers: shared hit=2 read=7
80. 0.352 0.871 ↓ 1.0 1,007 1

Hash (cost=32.06..32.06 rows=1,006 width=18) (actual time=0.871..0.871 rows=1,007 loops=1)

  • Output: userinfo10.displayname, userinfo10.id
  • Buckets: 1024 Batches: 1 Memory Usage: 60kB
  • Buffers: shared hit=22
81. 0.519 0.519 ↓ 1.0 1,007 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.userinfo userinfo10 (cost=0.00..32.06 rows=1,006 width=18) (actual time=0.003..0.519 rows=1,007 loops=1)

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

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

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

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

  • Output: billingrate11.name, billingrate11.id
  • Buffers: shared hit=5 read=2
84. 39.049 107.269 ↓ 1.0 88,837 1

Hash (cost=3,516.28..3,516.28 rows=88,828 width=63) (actual time=107.269..107.269 rows=88,837 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buckets: 131072 Batches: 1 Memory Usage: 9471kB
  • Buffers: shared hit=2 read=2626
85. 68.220 68.220 ↓ 1.0 88,837 1

Seq Scan on d39c603ba5ee46da9a42069eec872cf2.taskdenormalizedhierarchy tdh (cost=0.00..3,516.28 rows=88,828 width=63) (actual time=0.621..68.220 rows=88,837 loops=1)

  • Output: tdh.hierarchysorting, tdh.hierarchytaskname, tdh.taskid
  • Buffers: shared hit=2 read=2626