explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 1sPi : cventg3

Settings
# exclusive inclusive rows x rows loops node
1. 302.440 35,571.304 ↓ 42.4 87,107 1

Sort (cost=665,712.68..665,717.82 rows=2,053 width=324) (actual time=35,559.665..35,571.304 rows=87,107 loops=1)

  • Output: ts.startdate, ts.enddate, ((ui.lastname)::character varying(50)), ((ui.firstname)::character varying(50)), ui.id, "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, ts.id, "*SELECT* 1".modifiedbyuserid, (("*SELECT* 1".modifiedbyuseruri)::text)
  • Sort Key: ts.startdate, ts.enddate, ((ui.lastname)::character varying(50)) COLLATE "en_US", ((ui.firstname)::character varying(50)) COLLATE "en_US", "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, ui.id, ts.id
  • Sort Method: quicksort Memory: 26210kB
  • Buffers: shared hit=40401335 read=27, temp read=62088 written=62082
2. 74.168 35,268.864 ↓ 42.4 87,107 1

Nested Loop (cost=2.09..665,599.73 rows=2,053 width=324) (actual time=188.874..35,268.864 rows=87,107 loops=1)

  • Output: ts.startdate, ts.enddate, ui.lastname, ui.firstname, ui.id, "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, ts.id, "*SELECT* 1".modifiedbyuserid, "*SELECT* 1".modifiedbyuseruri
  • Inner Unique: true
  • Buffers: shared hit=40401316 read=27, temp read=62088 written=62082
3. 26.372 35,107.589 ↓ 42.4 87,107 1

Nested Loop (cost=1.81..664,932.01 rows=2,053 width=121) (actual time=188.861..35,107.589 rows=87,107 loops=1)

  • Output: "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, "*SELECT* 1".modifiedbyuserid, "*SELECT* 1".modifiedbyuseruri, "*SELECT* 1".userid, ts.startdate, ts.enddate, ts.id
  • Inner Unique: true
  • Buffers: shared hit=40139939 read=27, temp read=62088 written=62082
4. 57.222 34,907.003 ↓ 42.4 87,107 1

Nested Loop (cost=1.39..664,008.43 rows=2,053 width=129) (actual time=188.850..34,907.003 rows=87,107 loops=1)

  • Output: "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, "*SELECT* 1".modifiedbyuserid, "*SELECT* 1".modifiedbyuseruri, "*SELECT* 1".timesheetid, "*SELECT* 1".userid, tslist.timesheetid
  • Inner Unique: true
  • Buffers: shared hit=39791511 read=27, temp read=62088 written=62082
5. 9.669 34,588.460 ↓ 42.4 87,107 1

Append (cost=0.97..661,698.37 rows=2,053 width=113) (actual time=188.795..34,588.460 rows=87,107 loops=1)

  • Buffers: shared hit=39416863 read=22, temp read=62088 written=62082
6. 0.000 0.003 ↓ 0.0 0 1

Subquery Scan on *SELECT* 1 (cost=0.97..22.50 rows=1 width=80) (actual time=0.003..0.003 rows=0 loops=1)

  • Output: "*SELECT* 1".entrydate, "*SELECT* 1".modifiedonutc, "*SELECT* 1".action, "*SELECT* 1".validuntilutc, "*SELECT* 1".modifiedbyuserid, "*SELECT* 1".modifiedbyuseruri, "*SELECT* 1".timesheetid, "*SELECT* 1".userid
7. 0.000 0.003 ↓ 0.0 0 1

Nested Loop (cost=0.97..22.49 rows=1 width=348) (actual time=0.003..0.003 rows=0 loops=1)

  • Output: ts_1.id, ts_1.userid, NULL::date, NULL::date, NULL::text, CASE WHEN (at.parentid IS NULL) THEN 100 ELSE 101 END, NULL::uuid, at.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, at.openinguserid, NULL::text, NULL::integer, NULL::text, NULL::text, at.fromtimestamputc, at.totimestamputc, NULL::text
8. 0.001 0.003 ↓ 0.0 0 1

Nested Loop (cost=0.54..19.22 rows=1 width=60) (actual time=0.002..0.003 rows=0 loops=1)

  • Output: ts_1.id, ts_1.userid, at.parentid, at.entrydate, at.openinguserid, at.fromtimestamputc, at.totimestamputc
9. 0.000 0.002 ↓ 0.0 0 1

Nested Loop (cost=0.12..12.65 rows=1 width=44) (actual time=0.002..0.002 rows=0 loops=1)

  • Output: at.parentid, at.entrydate, at.openinguserid, at.fromtimestamputc, at.totimestamputc, at.userid
  • Join Filter: (at.rootid = allocatedtime.rootid)
10. 0.002 0.002 ↓ 0.0 0 1

Seq Scan on "2f766932716d4761981a2698126f0f51".allocatedtime at (cost=0.00..10.50 rows=1 width=60) (actual time=0.002..0.002 rows=0 loops=1)

  • Output: at.id, at.rootid, at.parentid, at.inouttimesheetentryid, at.userid, at.openinguserid, at.openingactualuserid, at.closinguserid, at.closingactualuserid, at.entrydate, at.duration, at.workdayduration, at.comments, at.openingreason, at.closingreason, at.projectid, at.taskid, at.activityid, at.billingrateid, at.breaktypeid, at.info1, at.info2, at.info3, at.info4, at.info5, at.fromtimestamputc, at.totimestamputc
  • Filter: ((at.fromtimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (at.fromtimestamputc < '2020-02-04 05:00:00'::timestamp without time zone) AND (CASE WHEN (at.parentid IS NULL) THEN 100 ELSE 101 END = ANY ('{1,2,3,4,6,100,101,102}'::integer[])))
11. 0.000 0.000 ↓ 0.0 0

Index Only Scan using ixallocatedtimerootid on "2f766932716d4761981a2698126f0f51".allocatedtime (cost=0.12..2.14 rows=1 width=16) (never executed)

  • Output: allocatedtime.rootid
  • Heap Fetches: 0
12. 0.000 0.000 ↓ 0.0 0

Index Scan using ixtsuseridstartdateenddate on "2f766932716d4761981a2698126f0f51".timesheet ts_1 (cost=0.42..6.52 rows=5 width=28) (never executed)

  • Output: ts_1.id, ts_1.userid, ts_1.startdate, ts_1.enddate, ts_1.approvalstatus, ts_1.duedate, ts_1.autosubmitdatetimeutc, ts_1.lastautosubmitattemptdatetimeutc, ts_1.createdonutc
  • Index Cond: ((ts_1.userid = at.userid) AND (at.entrydate >= ts_1.startdate) AND (at.entrydate <= ts_1.enddate))
13. 0.000 0.000 ↓ 0.0 0

Index Scan using ixtpsstimesheetid on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot tsformat (cost=0.43..3.26 rows=1 width=16) (never executed)

  • Output: tsformat.id, tsformat.timesheetid, tsformat.parentid, tsformat.index, tsformat.key, tsformat.uri, tsformat.slug, tsformat."boolean", tsformat.date, tsformat.number, tsformat.text, tsformat."time", tsformat.timespan, tsformat.daterange_startdate, tsformat.daterange_enddate, tsformat.daterange_relativedaterangeuri, tsformat.daterange_relativedaterangeasofdate, tsformat.workdayduration_decimalworkdays, tsformat.workdayduration_workdays, tsformat.workdayduration_hours, tsformat.workdayduration_minutes
  • Index Cond: (tsformat.timesheetid = ts_1.id)
  • Filter: ((upper(tsformat.uri) <> 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text) AND (upper(tsformat.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text))
14. 0.000 0.002 ↓ 0.0 0 1

Subquery Scan on *SELECT* 2 (cost=0.56..19.06 rows=1 width=80) (actual time=0.002..0.002 rows=0 loops=1)

  • Output: "*SELECT* 2".entrydate, "*SELECT* 2".modifiedonutc, "*SELECT* 2".action, "*SELECT* 2".validuntilutc, "*SELECT* 2".modifiedbyuserid, "*SELECT* 2".modifiedbyuseruri, "*SELECT* 2".timesheetid, "*SELECT* 2".userid
15. 0.001 0.002 ↓ 0.0 0 1

Result (cost=0.56..19.05 rows=1 width=348) (actual time=0.002..0.002 rows=0 loops=1)

  • Output: ts_2.id, ts_2.userid, NULL::date, NULL::date, NULL::text, 102, NULL::uuid, at_1.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, at_1.closinguserid, NULL::text, NULL::integer, NULL::text, NULL::text, at_1.totimestamputc, NULL::timestamp without time zone, NULL::text
  • One-Time Filter: (102 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
16. 0.000 0.001 ↓ 0.0 0 1

Nested Loop (cost=0.56..19.05 rows=1 width=348) (actual time=0.001..0.001 rows=0 loops=1)

  • Output: ts_2.id, ts_2.userid, NULL::date, NULL::date, NULL::text, 102, NULL::uuid, at_1.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, at_1.closinguserid, NULL::text, NULL::integer, NULL::text, NULL::text, at_1.totimestamputc, NULL::timestamp without time zone, NULL::text
17. 0.001 0.001 ↓ 0.0 0 1

Nested Loop Left Join (cost=0.14..12.46 rows=1 width=20) (actual time=0.001..0.001 rows=0 loops=1)

  • Output: at_1.entrydate, at_1.closinguserid, at_1.totimestamputc, at_1.userid
  • Inner Unique: true
  • Filter: (child_at.id IS NULL)
18. 0.000 0.000 ↓ 0.0 0 1

Seq Scan on "2f766932716d4761981a2698126f0f51".allocatedtime at_1 (cost=0.00..10.30 rows=1 width=36) (actual time=0.000..0.000 rows=0 loops=1)

  • Output: at_1.id, at_1.rootid, at_1.parentid, at_1.inouttimesheetentryid, at_1.userid, at_1.openinguserid, at_1.openingactualuserid, at_1.closinguserid, at_1.closingactualuserid, at_1.entrydate, at_1.duration, at_1.workdayduration, at_1.comments, at_1.openingreason, at_1.closingreason, at_1.projectid, at_1.taskid, at_1.activityid, at_1.billingrateid, at_1.breaktypeid, at_1.info1, at_1.info2, at_1.info3, at_1.info4, at_1.info5, at_1.fromtimestamputc, at_1.totimestamputc
  • Filter: ((at_1.totimestamputc IS NOT NULL) AND (at_1.totimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (at_1.totimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
19. 0.000 0.000 ↓ 0.0 0

Index Scan using uixallocatedtime_parent on "2f766932716d4761981a2698126f0f51".allocatedtime child_at (cost=0.14..2.16 rows=1 width=32) (never executed)

  • Output: child_at.id, child_at.rootid, child_at.parentid, child_at.inouttimesheetentryid, child_at.userid, child_at.openinguserid, child_at.openingactualuserid, child_at.closinguserid, child_at.closingactualuserid, child_at.entrydate, child_at.duration, child_at.workdayduration, child_at.comments, child_at.openingreason, child_at.closingreason, child_at.projectid, child_at.taskid, child_at.activityid, child_at.billingrateid, child_at.breaktypeid, child_at.info1, child_at.info2, child_at.info3, child_at.info4, child_at.info5, child_at.fromtimestamputc, child_at.totimestamputc
  • Index Cond: (child_at.parentid = at_1.id)
20. 0.000 0.000 ↓ 0.0 0

Index Scan using ixtsuseridstartdateenddate on "2f766932716d4761981a2698126f0f51".timesheet ts_2 (cost=0.42..6.52 rows=5 width=28) (never executed)

  • Output: ts_2.id, ts_2.userid, ts_2.startdate, ts_2.enddate, ts_2.approvalstatus, ts_2.duedate, ts_2.autosubmitdatetimeutc, ts_2.lastautosubmitattemptdatetimeutc, ts_2.createdonutc
  • Index Cond: ((ts_2.userid = at_1.userid) AND (at_1.entrydate >= ts_2.startdate) AND (at_1.entrydate <= ts_2.enddate))
21. 4.168 902.569 ↓ 254.9 32,623 1

Subquery Scan on *SELECT* 3 (cost=2,976.75..16,968.47 rows=128 width=110) (actual time=188.788..902.569 rows=32,623 loops=1)

  • Output: "*SELECT* 3".entrydate, "*SELECT* 3".modifiedonutc, "*SELECT* 3".action, "*SELECT* 3".validuntilutc, "*SELECT* 3".modifiedbyuserid, "*SELECT* 3".modifiedbyuseruri, "*SELECT* 3".timesheetid, "*SELECT* 3".userid
  • Buffers: shared hit=819210 read=16
22. 0.000 898.401 ↓ 254.9 32,623 1

Gather (cost=2,976.75..16,967.19 rows=128 width=378) (actual time=188.787..898.401 rows=32,623 loops=1)

  • Output: ts_3.id, ts_3.userid, NULL::date, NULL::date, NULL::text, (CASE WHEN (rev.previousrevisionid IS NULL) THEN 100 ELSE 101 END), NULL::uuid, rev.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser.uri, NULL::integer, NULL::text, NULL::text, rev.fromtimestamputc, rev.totimestamputc, NULL::text
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=819210 read=16
23. 6.621 1,065.842 ↓ 205.2 10,874 3 / 3

Nested Loop Left Join (cost=1,976.75..15,954.39 rows=53 width=378) (actual time=203.581..1,065.842 rows=10,874 loops=3)

  • Output: ts_3.id, ts_3.userid, NULL::date, NULL::date, NULL::text, CASE WHEN (rev.previousrevisionid IS NULL) THEN 100 ELSE 101 END, NULL::uuid, rev.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser.uri, NULL::integer, NULL::text, NULL::text, rev.fromtimestamputc, rev.totimestamputc, NULL::text
  • Buffers: shared hit=819210 read=16
  • Worker 0: actual time=210.306..1157.758 rows=12170 loops=1
  • Buffers: shared hit=305445 read=3
  • Worker 1: actual time=213.035..1157.831 rows=12182 loops=1
  • Buffers: shared hit=305912 read=4
24. 5.059 1,026.598 ↓ 205.2 10,874 3 / 3

Nested Loop Left Join (cost=1,976.19..15,817.41 rows=53 width=134) (actual time=203.568..1,026.598 rows=10,874 loops=3)

  • Output: ts_3.id, ts_3.userid, rev.previousrevisionid, rev.entrydate, rev.fromtimestamputc, rev.totimestamputc, rev.openingauditid, effectiveuser.uri
  • Buffers: shared hit=656081 read=16
  • Worker 0: actual time=210.294..1114.593 rows=12170 loops=1
  • Buffers: shared hit=244590 read=3
  • Worker 1: actual time=213.020..1114.518 rows=12182 loops=1
  • Buffers: shared hit=244996 read=4
25. 5.493 978.042 ↓ 209.1 10,874 3 / 3

Nested Loop Left Join (cost=1,975.63..15,683.03 rows=52 width=72) (actual time=203.556..978.042 rows=10,874 loops=3)

  • Output: ts_3.id, ts_3.userid, rev.previousrevisionid, rev.entrydate, rev.fromtimestamputc, rev.totimestamputc, rev.openingauditid
  • Buffers: shared hit=492308 read=16
  • Worker 0: actual time=210.284..1060.889 rows=12170 loops=1
  • Buffers: shared hit=183492 read=3
  • Worker 1: actual time=213.009..1060.612 rows=12182 loops=1
  • Buffers: shared hit=183837 read=4
26. 3.416 896.429 ↓ 209.1 10,874 3 / 3

Hash Semi Join (cost=1,975.07..15,548.64 rows=52 width=72) (actual time=203.525..896.429 rows=10,874 loops=3)

  • Output: ts_3.id, ts_3.userid, rev.previousrevisionid, rev.entrydate, rev.fromtimestamputc, rev.totimestamputc, rev.openingauditid
  • Hash Cond: (ts_3.id = timesheetpolicysettingssnapshot.timesheetid)
  • Buffers: shared hit=361802 read=16
  • Worker 0: actual time=210.252..970.106 rows=12170 loops=1
  • Buffers: shared hit=134806 read=3
  • Worker 1: actual time=212.981..969.763 rows=12182 loops=1
  • Buffers: shared hit=135104 read=4
27. 4.922 690.327 ↓ 4.2 10,874 3 / 3

Nested Loop (cost=0.72..13,552.94 rows=2,587 width=72) (actual time=0.780..690.327 rows=10,874 loops=3)

  • Output: ts_3.id, ts_3.userid, rev.previousrevisionid, rev.entrydate, rev.fromtimestamputc, rev.totimestamputc, rev.openingauditid
  • Buffers: shared hit=356591 read=16
  • Worker 0: actual time=0.297..756.550 rows=12170 loops=1
  • Buffers: shared hit=133058 read=3
  • Worker 1: actual time=0.257..753.399 rows=12182 loops=1
  • Buffers: shared hit=133356 read=4
28. 22.071 22.071 ↓ 21.0 10,874 3 / 3

Parallel Index Scan using ixter2fromtimestamputc on "2f766932716d4761981a2698126f0f51".timeentryrevision rev (cost=0.43..12,671.01 rows=519 width=56) (actual time=0.056..22.071 rows=10,874 loops=3)

  • Output: rev.id, rev.txid, rev.previousrevisionid, rev.timeentryid, rev.fromtimestamputc, rev.totimestamputc, rev.openingauditid, rev.closingauditid, rev.userid, rev.entrydate, rev.timeallocationtype, rev.hours, rev.intime, rev.outtime
  • Index Cond: ((rev.fromtimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (rev.fromtimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
  • Filter: (CASE WHEN (rev.previousrevisionid IS NULL) THEN 100 ELSE 101 END = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=5182
  • Worker 0: actual time=0.075..24.677 rows=12170 loops=1
  • Buffers: shared hit=2072
  • Worker 1: actual time=0.075..23.917 rows=12182 loops=1
  • Buffers: shared hit=1804
29. 663.334 663.334 ↑ 5.0 1 32,623 / 3

Index Scan using uix2tsuseridstartdate on "2f766932716d4761981a2698126f0f51".timesheet ts_3 (cost=0.29..1.65 rows=5 width=28) (actual time=0.061..0.061 rows=1 loops=32,623)

  • Output: ts_3.id, ts_3.userid, ts_3.startdate, ts_3.enddate, ts_3.approvalstatus, ts_3.duedate, ts_3.autosubmitdatetimeutc, ts_3.lastautosubmitattemptdatetimeutc, ts_3.createdonutc
  • Index Cond: ((ts_3.userid = rev.userid) AND (rev.entrydate >= ts_3.startdate))
  • Filter: (rev.entrydate <= ts_3.enddate)
  • Rows Removed by Filter: 49
  • Buffers: shared hit=351409 read=16
  • Worker 0: actual time=0.059..0.059 rows=1 loops=12170
  • Buffers: shared hit=130986 read=3
  • Worker 1: actual time=0.059..0.059 rows=1 loops=12182
  • Buffers: shared hit=131552 read=4
30. 19.484 202.686 ↓ 49.3 93,132 3 / 3

Hash (cost=1,950.70..1,950.70 rows=1,891 width=16) (actual time=202.686..202.686 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot.timesheetid
  • Buckets: 131072 (originally 2048) Batches: 1 (originally 1) Memory Usage: 5390kB
  • Buffers: shared hit=5147
  • Worker 0: actual time=209.884..209.884 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=212.647..212.648 rows=93132 loops=1
  • Buffers: shared hit=1716
31. 183.202 183.202 ↓ 49.3 93,132 3 / 3

Index Scan using ixtspss2key on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot (cost=0.68..1,950.70 rows=1,891 width=16) (actual time=0.046..183.202 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot.timesheetid
  • Index Cond: ((upper(timesheetpolicysettingssnapshot.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text) AND (upper(timesheetpolicysettingssnapshot.uri) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text))
  • Buffers: shared hit=5147
  • Worker 0: actual time=0.041..190.966 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=0.047..192.513 rows=93132 loops=1
  • Buffers: shared hit=1716
32. 76.120 76.120 ↓ 0.0 0 32,623 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue changereason (cost=0.56..2.57 rows=1 width=16) (actual time=0.007..0.007 rows=0 loops=32,623)

  • Output: changereason.id, changereason.revisionauditid, changereason.keyuri, changereason.parentid, changereason.index, changereason.uri, changereason.slug, changereason."boolean", changereason.date, changereason.number, changereason.text, changereason."time", changereason.timespan, changereason.daterange_startdate, changereason.daterange_enddate, changereason.daterange_relativedaterangeuri, changereason.daterange_relativedaterangeasofdate, changereason.workdayduration_decimalworkdays, changereason.workdayduration_workdays, changereason.workdayduration_hours, changereason.workdayduration_minutes
  • Index Cond: ((changereason.revisionauditid = rev.openingauditid) AND (upper(changereason.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:COMMENT'::text))
  • Buffers: shared hit=130506
  • Worker 0: actual time=0.007..0.007 rows=0 loops=12170
  • Buffers: shared hit=48686
  • Worker 1: actual time=0.007..0.007 rows=0 loops=12182
  • Buffers: shared hit=48733
33. 43.497 43.497 ↑ 1.0 1 32,623 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser (cost=0.56..2.57 rows=1 width=78) (actual time=0.004..0.004 rows=1 loops=32,623)

  • Output: effectiveuser.id, effectiveuser.revisionauditid, effectiveuser.keyuri, effectiveuser.parentid, effectiveuser.index, effectiveuser.uri, effectiveuser.slug, effectiveuser."boolean", effectiveuser.date, effectiveuser.number, effectiveuser.text, effectiveuser."time", effectiveuser.timespan, effectiveuser.daterange_startdate, effectiveuser.daterange_enddate, effectiveuser.daterange_relativedaterangeuri, effectiveuser.daterange_relativedaterangeasofdate, effectiveuser.workdayduration_decimalworkdays, effectiveuser.workdayduration_workdays, effectiveuser.workdayduration_hours, effectiveuser.workdayduration_minutes
  • Index Cond: ((effectiveuser.revisionauditid = rev.openingauditid) AND (upper(effectiveuser.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=163773
  • Worker 0: actual time=0.004..0.004 rows=1 loops=12170
  • Buffers: shared hit=61098
  • Worker 1: actual time=0.004..0.004 rows=1 loops=12182
  • Buffers: shared hit=61159
34. 32.623 32.623 ↑ 1.0 1 32,623 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser (cost=0.56..2.57 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=32,623)

  • Output: actualuser.id, actualuser.revisionauditid, actualuser.keyuri, actualuser.parentid, actualuser.index, actualuser.uri, actualuser.slug, actualuser."boolean", actualuser.date, actualuser.number, actualuser.text, actualuser."time", actualuser.timespan, actualuser.daterange_startdate, actualuser.daterange_enddate, actualuser.daterange_relativedaterangeuri, actualuser.daterange_relativedaterangeasofdate, actualuser.workdayduration_decimalworkdays, actualuser.workdayduration_workdays, actualuser.workdayduration_hours, actualuser.workdayduration_minutes
  • Index Cond: ((actualuser.revisionauditid = rev.openingauditid) AND (upper(actualuser.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=163129
  • Worker 0: actual time=0.003..0.003 rows=1 loops=12170
  • Buffers: shared hit=60855
  • Worker 1: actual time=0.003..0.003 rows=1 loops=12182
  • Buffers: shared hit=60916
35. 6.760 8,606.468 ↓ 283.8 52,213 1

Subquery Scan on *SELECT* 4 (cost=27,744.11..77,538.29 rows=184 width=110) (actual time=7,775.201..8,606.468 rows=52,213 loops=1)

  • Output: "*SELECT* 4".entrydate, "*SELECT* 4".modifiedonutc, "*SELECT* 4".action, "*SELECT* 4".validuntilutc, "*SELECT* 4".modifiedbyuserid, "*SELECT* 4".modifiedbyuseruri, "*SELECT* 4".timesheetid, "*SELECT* 4".userid
  • Buffers: shared hit=6290278, temp read=62088 written=62082
36. 0.000 8,599.708 ↓ 283.8 52,213 1

Gather (cost=27,744.11..77,536.45 rows=184 width=378) (actual time=7,775.200..8,599.708 rows=52,213 loops=1)

  • Output: ts_4.id, ts_4.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_1.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_1.uri, NULL::integer, NULL::text, NULL::text, mdrev.fromtimestamputc, mdrev.totimestamputc, NULL::text
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=6290278, temp read=62088 written=62082
37. 4.065 8,674.413 ↓ 226.0 17,404 3 / 3

Result (cost=26,744.11..76,518.05 rows=77 width=378) (actual time=7,936.112..8,674.413 rows=17,404 loops=3)

  • Output: ts_4.id, ts_4.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_1.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_1.uri, NULL::integer, NULL::text, NULL::text, mdrev.fromtimestamputc, mdrev.totimestamputc, NULL::text
  • One-Time Filter: (101 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=6290278, temp read=62088 written=62082
  • Worker 0: actual time=8030.783..8725.000 rows=14848 loops=1
  • Buffers: shared hit=2049648, temp read=20620 written=20618
  • Worker 1: actual time=8003.997..8736.929 rows=17306 loops=1
  • Buffers: shared hit=2099249, temp read=20689 written=20687
38. 4.273 8,670.348 ↓ 226.0 17,404 3 / 3

Nested Loop Left Join (cost=26,744.11..76,518.05 rows=77 width=102) (actual time=7,936.109..8,670.348 rows=17,404 loops=3)

  • Output: mdrev.fromtimestamputc, mdrev.totimestamputc, rev_1.entrydate, ts_4.id, ts_4.userid, effectiveuser_1.uri
  • Buffers: shared hit=6290278, temp read=62088 written=62082
  • Worker 0: actual time=8030.782..8721.492 rows=14848 loops=1
  • Buffers: shared hit=2049648, temp read=20620 written=20618
  • Worker 1: actual time=8003.995..8732.898 rows=17306 loops=1
  • Buffers: shared hit=2099249, temp read=20689 written=20687
39. 11.859 8,613.862 ↓ 229.0 17,404 3 / 3

Nested Loop Left Join (cost=26,743.54..76,353.37 rows=76 width=118) (actual time=7,936.094..8,613.862 rows=17,404 loops=3)

  • Output: mdrev.fromtimestamputc, mdrev.totimestamputc, mdrev.openingauditid, rev_1.entrydate, ts_4.id, ts_4.userid, effectiveuser_1.uri
  • Buffers: shared hit=6029194, temp read=62088 written=62082
  • Worker 0: actual time=8030.764..8673.189 rows=14848 loops=1
  • Buffers: shared hit=1975400, temp read=20620 written=20618
  • Worker 1: actual time=8003.978..8677.519 rows=17306 loops=1
  • Buffers: shared hit=2012719, temp read=20689 written=20687
40. 30.783 8,532.386 ↓ 229.0 17,404 3 / 3

Nested Loop Anti Join (cost=26,742.98..76,188.69 rows=76 width=56) (actual time=7,936.068..8,532.386 rows=17,404 loops=3)

  • Output: mdrev.fromtimestamputc, mdrev.totimestamputc, mdrev.openingauditid, rev_1.entrydate, ts_4.id, ts_4.userid
  • Buffers: shared hit=5767115, temp read=62088 written=62082
  • Worker 0: actual time=8030.734..8603.193 rows=14848 loops=1
  • Buffers: shared hit=1900882, temp read=20620 written=20618
  • Worker 1: actual time=8003.951..8597.532 rows=17306 loops=1
  • Buffers: shared hit=1925848, temp read=20689 written=20687
41. 467.739 8,423.723 ↓ 14.8 38,940 3 / 3

Hash Join (cost=26,742.55..73,093.80 rows=2,638 width=72) (actual time=7,936.009..8,423.723 rows=38,940 loops=3)

  • Output: mdrev.fromtimestamputc, mdrev.totimestamputc, mdrev.timeentryid, mdrev.openingauditid, rev_1.entrydate, ts_4.id, ts_4.userid
  • Hash Cond: (mdrev.timeentryid = rev_1.timeentryid)
  • Join Filter: ((rev_1.fromtimestamputc <= mdrev.fromtimestamputc) AND ((rev_1.totimestamputc IS NULL) OR (rev_1.totimestamputc > mdrev.fromtimestamputc)))
  • Rows Removed by Join Filter: 61556
  • Buffers: shared hit=5281637, temp read=62088 written=62082
  • Worker 0: actual time=8030.714..8507.377 rows=32882 loops=1
  • Buffers: shared hit=1760441, temp read=20620 written=20618
  • Worker 1: actual time=8003.930..8487.269 rows=38989 loops=1
  • Buffers: shared hit=1760725, temp read=20689 written=20687
42. 22.058 22.058 ↑ 1.1 38,940 3 / 3

Parallel Index Scan using ixtemr2fromtimestamputc on "2f766932716d4761981a2698126f0f51".timeentrymetadatarevision mdrev (cost=0.56..44,269.90 rows=42,371 width=48) (actual time=0.052..22.058 rows=38,940 loops=3)

  • Output: mdrev.id, mdrev.txid, mdrev.previousrevisionid, mdrev.timeentrymetadataid, mdrev.fromtimestamputc, mdrev.totimestamputc, mdrev.openingauditid, mdrev.closingauditid, mdrev.timeentryid, mdrev.parentid, mdrev.index, mdrev.key, mdrev.uri, mdrev.slug, mdrev."boolean", mdrev.date, mdrev.number, mdrev.text, mdrev."time", mdrev.timespan, mdrev.daterange_startdate, mdrev.daterange_enddate, mdrev.daterange_relativedaterangeuri, mdrev.daterange_relativedaterangeasofdate, mdrev.workdayduration_decimalworkdays, mdrev.workdayduration_workdays, mdrev.workdayduration_hours, mdrev.workdayduration_minutes
  • Index Cond: ((mdrev.fromtimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (mdrev.fromtimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
  • Buffers: shared hit=8228
  • Worker 0: actual time=0.081..15.129 rows=32882 loops=1
  • Buffers: shared hit=2637
  • Worker 1: actual time=0.060..18.928 rows=38989 loops=1
  • Buffers: shared hit=2921
43. 1,434.429 7,933.926 ↓ 9.9 4,358,155 3 / 3

Hash (cost=21,213.70..21,213.70 rows=442,263 width=56) (actual time=7,933.926..7,933.926 rows=4,358,155 loops=3)

  • Output: rev_1.entrydate, rev_1.timeentryid, rev_1.fromtimestamputc, rev_1.totimestamputc, ts_4.id, ts_4.userid
  • Buckets: 4194304 (originally 524288) Batches: 2 (originally 1) Memory Usage: 249203kB
  • Buffers: shared hit=5273409, temp written=60588
  • Worker 0: actual time=8028.557..8028.557 rows=4358155 loops=1
  • Buffers: shared hit=1757804, temp written=20196
  • Worker 1: actual time=8001.798..8001.798 rows=4358155 loops=1
  • Buffers: shared hit=1757804, temp written=20196
44. 1,087.868 6,499.497 ↓ 9.9 4,358,155 3 / 3

Nested Loop (cost=1,956.28..21,213.70 rows=442,263 width=56) (actual time=221.648..6,499.497 rows=4,358,155 loops=3)

  • Output: rev_1.entrydate, rev_1.timeentryid, rev_1.fromtimestamputc, rev_1.totimestamputc, ts_4.id, ts_4.userid
  • Buffers: shared hit=5273409
  • Worker 0: actual time=239.474..6593.223 rows=4358155 loops=1
  • Buffers: shared hit=1757804
  • Worker 1: actual time=240.221..6564.154 rows=4358155 loops=1
  • Buffers: shared hit=1757804
45. 34.169 661.897 ↓ 49.3 93,132 3 / 3

Nested Loop (cost=1,955.85..4,115.46 rows=1,891 width=28) (actual time=221.618..661.897 rows=93,132 loops=3)

  • Output: ts_4.id, ts_4.userid, ts_4.startdate, ts_4.enddate
  • Inner Unique: true
  • Buffers: shared hit=1123873
  • Worker 0: actual time=239.440..682.633 rows=93132 loops=1
  • Buffers: shared hit=374625
  • Worker 1: actual time=240.186..681.392 rows=93132 loops=1
  • Buffers: shared hit=374625
46. 68.638 255.200 ↓ 49.8 93,132 3 / 3

HashAggregate (cost=1,955.43..1,974.15 rows=1,872 width=16) (actual time=221.594..255.200 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot_1.timesheetid
  • Group Key: timesheetpolicysettingssnapshot_1.timesheetid
  • Buffers: shared hit=5147
  • Worker 0: actual time=239.415..273.041 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=240.162..273.816 rows=93132 loops=1
  • Buffers: shared hit=1716
47. 186.562 186.562 ↓ 49.3 93,132 3 / 3

Index Scan using ixtspss2key on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot timesheetpolicysettingssnapshot_1 (cost=0.68..1,950.70 rows=1,891 width=16) (actual time=0.055..186.562 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot_1.id, timesheetpolicysettingssnapshot_1.timesheetid, timesheetpolicysettingssnapshot_1.parentid, timesheetpolicysettingssnapshot_1.index, timesheetpolicysettingssnapshot_1.key, timesheetpolicysettingssnapshot_1.uri, timesheetpolicysettingssnapshot_1.slug, timesheetpolicysettingssnapshot_1."boolean", timesheetpolicysettingssnapshot_1.date, timesheetpolicysettingssnapshot_1.number, timesheetpolicysettingssnapshot_1.text, timesheetpolicysettingssnapshot_1."time", timesheetpolicysettingssnapshot_1.timespan, timesheetpolicysettingssnapshot_1.daterange_startdate, timesheetpolicysettingssnapshot_1.daterange_enddate, timesheetpolicysettingssnapshot_1.daterange_relativedaterangeuri, timesheetpolicysettingssnapshot_1.daterange_relativedaterangeasofdate, timesheetpolicysettingssnapshot_1.workdayduration_decimalworkdays, timesheetpolicysettingssnapshot_1.workdayduration_workdays, timesheetpolicysettingssnapshot_1.workdayduration_hours, timesheetpolicysettingssnapshot_1.workdayduration_minutes
  • Index Cond: ((upper(timesheetpolicysettingssnapshot_1.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text) AND (upper(timesheetpolicysettingssnapshot_1.uri) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text))
  • Buffers: shared hit=5147
  • Worker 0: actual time=0.054..204.768 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=0.061..205.468 rows=93132 loops=1
  • Buffers: shared hit=1716
48. 372.528 372.528 ↑ 1.0 1 279,396 / 3

Index Scan using timesheet_pkey on "2f766932716d4761981a2698126f0f51".timesheet ts_4 (cost=0.42..1.16 rows=1 width=28) (actual time=0.004..0.004 rows=1 loops=279,396)

  • Output: ts_4.id, ts_4.userid, ts_4.startdate, ts_4.enddate, ts_4.approvalstatus, ts_4.duedate, ts_4.autosubmitdatetimeutc, ts_4.lastautosubmitattemptdatetimeutc, ts_4.createdonutc
  • Index Cond: (ts_4.id = timesheetpolicysettingssnapshot_1.timesheetid)
  • Buffers: shared hit=1118726
  • Worker 0: actual time=0.004..0.004 rows=1 loops=93132
  • Buffers: shared hit=372909
  • Worker 1: actual time=0.004..0.004 rows=1 loops=93132
  • Buffers: shared hit=372909
49. 4,749.732 4,749.732 ↑ 4.8 47 279,396 / 3

Index Scan using ixter2userid on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_1 (cost=0.43..6.77 rows=227 width=40) (actual time=0.007..0.051 rows=47 loops=279,396)

  • Output: rev_1.id, rev_1.txid, rev_1.previousrevisionid, rev_1.timeentryid, rev_1.fromtimestamputc, rev_1.totimestamputc, rev_1.openingauditid, rev_1.closingauditid, rev_1.userid, rev_1.entrydate, rev_1.timeallocationtype, rev_1.hours, rev_1.intime, rev_1.outtime
  • Index Cond: ((rev_1.userid = ts_4.userid) AND (rev_1.entrydate >= ts_4.startdate) AND (rev_1.entrydate <= ts_4.enddate))
  • Buffers: shared hit=4149536
  • Worker 0: actual time=0.007..0.051 rows=47 loops=93132
  • Buffers: shared hit=1383179
  • Worker 1: actual time=0.007..0.051 rows=47 loops=93132
  • Buffers: shared hit=1383179
50. 77.880 77.880 ↑ 1.0 1 116,820 / 3

Index Scan using timeentryrevision_singleinitialrevision on "2f766932716d4761981a2698126f0f51".timeentryrevision (cost=0.43..1.16 rows=1 width=24) (actual time=0.002..0.002 rows=1 loops=116,820)

  • Output: timeentryrevision.id, timeentryrevision.txid, timeentryrevision.previousrevisionid, timeentryrevision.timeentryid, timeentryrevision.fromtimestamputc, timeentryrevision.totimestamputc, timeentryrevision.openingauditid, timeentryrevision.closingauditid, timeentryrevision.userid, timeentryrevision.entrydate, timeentryrevision.timeallocationtype, timeentryrevision.hours, timeentryrevision.intime, timeentryrevision.outtime
  • Index Cond: (timeentryrevision.timeentryid = mdrev.timeentryid)
  • Filter: (timeentryrevision.fromtimestamputc = mdrev.fromtimestamputc)
  • Rows Removed by Filter: 0
  • Buffers: shared hit=485478
  • Worker 0: actual time=0.002..0.002 rows=1 loops=32882
  • Buffers: shared hit=140441
  • Worker 1: actual time=0.002..0.002 rows=1 loops=38989
  • Buffers: shared hit=165123
51. 69.617 69.617 ↑ 1.0 1 52,213 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser_1 (cost=0.56..2.16 rows=1 width=78) (actual time=0.004..0.004 rows=1 loops=52,213)

  • Output: effectiveuser_1.id, effectiveuser_1.revisionauditid, effectiveuser_1.keyuri, effectiveuser_1.parentid, effectiveuser_1.index, effectiveuser_1.uri, effectiveuser_1.slug, effectiveuser_1."boolean", effectiveuser_1.date, effectiveuser_1.number, effectiveuser_1.text, effectiveuser_1."time", effectiveuser_1.timespan, effectiveuser_1.daterange_startdate, effectiveuser_1.daterange_enddate, effectiveuser_1.daterange_relativedaterangeuri, effectiveuser_1.daterange_relativedaterangeasofdate, effectiveuser_1.workdayduration_decimalworkdays, effectiveuser_1.workdayduration_workdays, effectiveuser_1.workdayduration_hours, effectiveuser_1.workdayduration_minutes
  • Index Cond: ((effectiveuser_1.revisionauditid = mdrev.openingauditid) AND (upper(effectiveuser_1.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=262079
  • Worker 0: actual time=0.004..0.004 rows=1 loops=14848
  • Buffers: shared hit=74518
  • Worker 1: actual time=0.004..0.004 rows=1 loops=17306
  • Buffers: shared hit=86871
52. 52.213 52.213 ↑ 1.0 1 52,213 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser_1 (cost=0.56..2.16 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=52,213)

  • Output: actualuser_1.id, actualuser_1.revisionauditid, actualuser_1.keyuri, actualuser_1.parentid, actualuser_1.index, actualuser_1.uri, actualuser_1.slug, actualuser_1."boolean", actualuser_1.date, actualuser_1.number, actualuser_1.text, actualuser_1."time", actualuser_1.timespan, actualuser_1.daterange_startdate, actualuser_1.daterange_enddate, actualuser_1.daterange_relativedaterangeuri, actualuser_1.daterange_relativedaterangeasofdate, actualuser_1.workdayduration_decimalworkdays, actualuser_1.workdayduration_workdays, actualuser_1.workdayduration_hours, actualuser_1.workdayduration_minutes
  • Index Cond: ((actualuser_1.revisionauditid = mdrev.openingauditid) AND (upper(actualuser_1.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=261084
  • Worker 0: actual time=0.003..0.003 rows=1 loops=14848
  • Buffers: shared hit=74248
  • Worker 1: actual time=0.003..0.003 rows=1 loops=17306
  • Buffers: shared hit=86530
53. 0.004 24,275.802 ↑ 3.5 301 1

Subquery Scan on *SELECT* 5 (cost=5,145.30..378,307.38 rows=1,048 width=110) (actual time=17,068.565..24,275.802 rows=301 loops=1)

  • Output: "*SELECT* 5".entrydate, "*SELECT* 5".modifiedonutc, "*SELECT* 5".action, "*SELECT* 5".validuntilutc, "*SELECT* 5".modifiedbyuserid, "*SELECT* 5".modifiedbyuseruri, "*SELECT* 5".timesheetid, "*SELECT* 5".userid
  • Buffers: shared hit=32150839
54. 17.471 24,275.798 ↑ 3.5 301 1

Gather (cost=5,145.30..378,296.90 rows=1,048 width=378) (actual time=17,068.564..24,275.798 rows=301 loops=1)

  • Output: ts_5.id, ts_5.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_2.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_2.uri, NULL::integer, NULL::text, NULL::text, mdrev_1.totimestamputc, NULL::timestamp without time zone, NULL::text
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=32150839
55. 0.094 24,258.327 ↑ 4.4 100 3 / 3

Result (cost=4,145.30..377,192.10 rows=437 width=378) (actual time=19,405.888..24,258.327 rows=100 loops=3)

  • Output: ts_5.id, ts_5.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_2.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_2.uri, NULL::integer, NULL::text, NULL::text, mdrev_1.totimestamputc, NULL::timestamp without time zone, NULL::text
  • One-Time Filter: (101 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=32150839
  • Worker 0: actual time=21602.397..24265.989 rows=114 loops=1
  • Buffers: shared hit=11049236
  • Worker 1: actual time=19548.317..24247.519 rows=92 loops=1
  • Buffers: shared hit=10260387
56. 0.113 24,258.233 ↑ 4.4 100 3 / 3

Nested Loop Anti Join (cost=4,145.30..377,192.10 rows=437 width=94) (actual time=19,405.885..24,258.233 rows=100 loops=3)

  • Output: mdrev_1.totimestamputc, rev_2.entrydate, ts_5.id, ts_5.userid, effectiveuser_2.uri
  • Buffers: shared hit=32150839
  • Worker 0: actual time=21602.395..24265.889 rows=114 loops=1
  • Buffers: shared hit=11049236
  • Worker 1: actual time=19548.314..24247.423 rows=92 loops=1
  • Buffers: shared hit=10260387
57. 0.239 24,256.314 ↑ 4.4 100 3 / 3

Nested Loop Left Join (cost=4,144.42..375,492.85 rows=437 width=110) (actual time=19,405.839..24,256.314 rows=100 loops=3)

  • Output: mdrev_1.totimestamputc, mdrev_1.timeentryid, rev_2.entrydate, ts_5.id, ts_5.userid, effectiveuser_2.uri
  • Buffers: shared hit=32147740
  • Worker 0: actual time=21602.352..24263.728 rows=114 loops=1
  • Buffers: shared hit=11048090
  • Worker 1: actual time=19548.266..24245.546 rows=92 loops=1
  • Buffers: shared hit=10259419
58. 0.242 24,255.774 ↑ 4.3 100 3 / 3

Nested Loop Left Join (cost=4,143.86..374,411.18 rows=434 width=126) (actual time=19,405.827..24,255.774 rows=100 loops=3)

  • Output: mdrev_1.totimestamputc, mdrev_1.timeentryid, mdrev_1.openingauditid, rev_2.entrydate, ts_5.id, ts_5.userid, effectiveuser_2.uri
  • Buffers: shared hit=32146235
  • Worker 0: actual time=21602.341..24263.156 rows=114 loops=1
  • Buffers: shared hit=11047520
  • Worker 1: actual time=19548.256..24245.016 rows=92 loops=1
  • Buffers: shared hit=10258959
59. 7.918 24,254.629 ↑ 4.3 100 3 / 3

Nested Loop Anti Join (cost=4,143.30..373,334.50 rows=432 width=64) (actual time=19,405.786..24,254.629 rows=100 loops=3)

  • Output: mdrev_1.totimestamputc, mdrev_1.timeentryid, mdrev_1.openingauditid, rev_2.entrydate, ts_5.id, ts_5.userid
  • Buffers: shared hit=32144724
  • Worker 0: actual time=21602.298..24261.878 rows=114 loops=1
  • Buffers: shared hit=11046948
  • Worker 1: actual time=19548.210..24243.927 rows=92 loops=1
  • Buffers: shared hit=10258497
60. 677.359 24,099.444 ↓ 32.5 16,363 3 / 3

Nested Loop (cost=4,139.66..370,985.44 rows=503 width=123) (actual time=15,829.347..24,099.444 rows=16,363 loops=3)

  • Output: mdrev_1.totimestamputc, mdrev_1.timeentryid, mdrev_1.openingauditid, mdrev_1.key, mdrev_1.closingauditid, rev_2.entrydate, ts_5.id, ts_5.userid
  • Buffers: shared hit=31685101
  • Worker 0: actual time=16217.426..24103.023 rows=17766 loops=1
  • Buffers: shared hit=10880583
  • Worker 1: actual time=16277.176..24083.936 rows=15467 loops=1
  • Buffers: shared hit=10113754
61. 8,125.157 8,894.902 ↓ 7.9 1,452,718 3 / 3

Hash Join (cost=4,139.10..131,515.25 rows=184,276 width=56) (actual time=570.303..8,894.902 rows=1,452,718 loops=3)

  • Output: rev_2.entrydate, rev_2.timeentryid, rev_2.fromtimestamputc, rev_2.totimestamputc, ts_5.id, ts_5.userid
  • Hash Cond: (rev_2.userid = ts_5.userid)
  • Join Filter: ((rev_2.entrydate >= ts_5.startdate) AND (rev_2.entrydate <= ts_5.enddate))
  • Rows Removed by Join Filter: 75097834
  • Buffers: shared hit=1201427
  • Worker 0: actual time=593.732..8831.219 rows=1496669 loops=1
  • Buffers: shared hit=401268
  • Worker 1: actual time=593.991..8964.463 rows=1389215 loops=1
  • Buffers: shared hit=399416
62. 199.477 199.477 ↑ 1.2 1,452,807 3 / 3

Parallel Seq Scan on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_2 (cost=0.00..95,689.70 rows=1,815,770 width=40) (actual time=0.005..199.477 rows=1,452,807 loops=3)

  • Output: rev_2.id, rev_2.txid, rev_2.previousrevisionid, rev_2.timeentryid, rev_2.fromtimestamputc, rev_2.totimestamputc, rev_2.openingauditid, rev_2.closingauditid, rev_2.userid, rev_2.entrydate, rev_2.timeallocationtype, rev_2.hours, rev_2.intime, rev_2.outtime
  • Buffers: shared hit=77532
  • Worker 0: actual time=0.005..199.643 rows=1496815 loops=1
  • Buffers: shared hit=26632
  • Worker 1: actual time=0.006..199.694 rows=1389276 loops=1
  • Buffers: shared hit=24780
63. 18.180 570.268 ↓ 49.3 93,132 3 / 3

Hash (cost=4,115.46..4,115.46 rows=1,891 width=28) (actual time=570.268..570.268 rows=93,132 loops=3)

  • Output: ts_5.id, ts_5.userid, ts_5.startdate, ts_5.enddate
  • Buckets: 131072 (originally 2048) Batches: 1 (originally 1) Memory Usage: 6481kB
  • Buffers: shared hit=1123873
  • Worker 0: actual time=593.692..593.692 rows=93132 loops=1
  • Buffers: shared hit=374625
  • Worker 1: actual time=593.948..593.948 rows=93132 loops=1
  • Buffers: shared hit=374625
64. 23.249 552.088 ↓ 49.3 93,132 3 / 3

Nested Loop (cost=1,955.85..4,115.46 rows=1,891 width=28) (actual time=226.363..552.088 rows=93,132 loops=3)

  • Output: ts_5.id, ts_5.userid, ts_5.startdate, ts_5.enddate
  • Inner Unique: true
  • Buffers: shared hit=1123873
  • Worker 0: actual time=243.213..575.102 rows=93132 loops=1
  • Buffers: shared hit=374625
  • Worker 1: actual time=243.479..575.782 rows=93132 loops=1
  • Buffers: shared hit=374625
65. 59.602 249.443 ↓ 49.8 93,132 3 / 3

HashAggregate (cost=1,955.43..1,974.15 rows=1,872 width=16) (actual time=226.340..249.443 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot_2.timesheetid
  • Group Key: timesheetpolicysettingssnapshot_2.timesheetid
  • Buffers: shared hit=5147
  • Worker 0: actual time=243.189..266.498 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=243.456..266.488 rows=93132 loops=1
  • Buffers: shared hit=1716
66. 189.841 189.841 ↓ 49.3 93,132 3 / 3

Index Scan using ixtspss2key on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot timesheetpolicysettingssnapshot_2 (cost=0.68..1,950.70 rows=1,891 width=16) (actual time=0.049..189.841 rows=93,132 loops=3)

  • Output: timesheetpolicysettingssnapshot_2.id, timesheetpolicysettingssnapshot_2.timesheetid, timesheetpolicysettingssnapshot_2.parentid, timesheetpolicysettingssnapshot_2.index, timesheetpolicysettingssnapshot_2.key, timesheetpolicysettingssnapshot_2.uri, timesheetpolicysettingssnapshot_2.slug, timesheetpolicysettingssnapshot_2."boolean", timesheetpolicysettingssnapshot_2.date, timesheetpolicysettingssnapshot_2.number, timesheetpolicysettingssnapshot_2.text, timesheetpolicysettingssnapshot_2."time", timesheetpolicysettingssnapshot_2.timespan, timesheetpolicysettingssnapshot_2.daterange_startdate, timesheetpolicysettingssnapshot_2.daterange_enddate, timesheetpolicysettingssnapshot_2.daterange_relativedaterangeuri, timesheetpolicysettingssnapshot_2.daterange_relativedaterangeasofdate, timesheetpolicysettingssnapshot_2.workdayduration_decimalworkdays, timesheetpolicysettingssnapshot_2.workdayduration_workdays, timesheetpolicysettingssnapshot_2.workdayduration_hours, timesheetpolicysettingssnapshot_2.workdayduration_minutes
  • Index Cond: ((upper(timesheetpolicysettingssnapshot_2.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text) AND (upper(timesheetpolicysettingssnapshot_2.uri) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text))
  • Buffers: shared hit=5147
  • Worker 0: actual time=0.048..207.081 rows=93132 loops=1
  • Buffers: shared hit=1716
  • Worker 1: actual time=0.051..207.734 rows=93132 loops=1
  • Buffers: shared hit=1716
67. 279.396 279.396 ↑ 1.0 1 279,396 / 3

Index Scan using timesheet_pkey on "2f766932716d4761981a2698126f0f51".timesheet ts_5 (cost=0.42..1.16 rows=1 width=28) (actual time=0.003..0.003 rows=1 loops=279,396)

  • Output: ts_5.id, ts_5.userid, ts_5.startdate, ts_5.enddate, ts_5.approvalstatus, ts_5.duedate, ts_5.autosubmitdatetimeutc, ts_5.lastautosubmitattemptdatetimeutc, ts_5.createdonutc
  • Index Cond: (ts_5.id = timesheetpolicysettingssnapshot_2.timesheetid)
  • Buffers: shared hit=1118726
  • Worker 0: actual time=0.003..0.003 rows=1 loops=93132
  • Buffers: shared hit=372909
  • Worker 1: actual time=0.003..0.003 rows=1 loops=93132
  • Buffers: shared hit=372909
68. 14,527.183 14,527.183 ↓ 0.0 0 4,358,155 / 3

Index Scan using ixtemrtimeentryid on "2f766932716d4761981a2698126f0f51".timeentrymetadatarevision mdrev_1 (cost=0.56..1.29 rows=1 width=99) (actual time=0.010..0.010 rows=0 loops=4,358,155)

  • Output: mdrev_1.id, mdrev_1.txid, mdrev_1.previousrevisionid, mdrev_1.timeentrymetadataid, mdrev_1.fromtimestamputc, mdrev_1.totimestamputc, mdrev_1.openingauditid, mdrev_1.closingauditid, mdrev_1.timeentryid, mdrev_1.parentid, mdrev_1.index, mdrev_1.key, mdrev_1.uri, mdrev_1.slug, mdrev_1."boolean", mdrev_1.date, mdrev_1.number, mdrev_1.text, mdrev_1."time", mdrev_1.timespan, mdrev_1.daterange_startdate, mdrev_1.daterange_enddate, mdrev_1.daterange_relativedaterangeuri, mdrev_1.daterange_relativedaterangeasofdate, mdrev_1.workdayduration_decimalworkdays, mdrev_1.workdayduration_workdays, mdrev_1.workdayduration_hours, mdrev_1.workdayduration_minutes
  • Index Cond: (mdrev_1.timeentryid = rev_2.timeentryid)
  • Filter: ((mdrev_1.totimestamputc IS NOT NULL) AND (mdrev_1.totimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (mdrev_1.totimestamputc < '2020-02-04 05:00:00'::timestamp without time zone) AND (rev_2.fromtimestamputc <= mdrev_1.totimestamputc) AND ((rev_2.totimestamputc IS NULL) OR (rev_2.totimestamputc > mdrev_1.totimestamputc)))
  • Rows Removed by Filter: 15
  • Buffers: shared hit=30483674
  • Worker 0: actual time=0.010..0.010 rows=0 loops=1496669
  • Buffers: shared hit=10479315
  • Worker 1: actual time=0.010..0.010 rows=0 loops=1389215
  • Buffers: shared hit=9714338
69. 32.726 147.267 ↑ 1.0 1 49,089 / 3

Bitmap Heap Scan on "2f766932716d4761981a2698126f0f51".timeentrymetadatarevision (cost=3.64..4.66 rows=1 width=83) (actual time=0.009..0.009 rows=1 loops=49,089)

  • Output: timeentrymetadatarevision.id, timeentrymetadatarevision.txid, timeentrymetadatarevision.previousrevisionid, timeentrymetadatarevision.timeentrymetadataid, timeentrymetadatarevision.fromtimestamputc, timeentrymetadatarevision.totimestamputc, timeentrymetadatarevision.openingauditid, timeentrymetadatarevision.closingauditid, timeentrymetadatarevision.timeentryid, timeentrymetadatarevision.parentid, timeentrymetadatarevision.index, timeentrymetadatarevision.key, timeentrymetadatarevision.uri, timeentrymetadatarevision.slug, timeentrymetadatarevision."boolean", timeentrymetadatarevision.date, timeentrymetadatarevision.number, timeentrymetadatarevision.text, timeentrymetadatarevision."time", timeentrymetadatarevision.timespan, timeentrymetadatarevision.daterange_startdate, timeentrymetadatarevision.daterange_enddate, timeentrymetadatarevision.daterange_relativedaterangeuri, timeentrymetadatarevision.daterange_relativedaterangeasofdate, timeentrymetadatarevision.workdayduration_decimalworkdays, timeentrymetadatarevision.workdayduration_workdays, timeentrymetadatarevision.workdayduration_hours, timeentrymetadatarevision.workdayduration_minutes
  • Recheck Cond: ((timeentrymetadatarevision.timeentryid = mdrev_1.timeentryid) AND (timeentrymetadatarevision.fromtimestamputc = mdrev_1.totimestamputc))
  • Filter: ((timeentrymetadatarevision.key = mdrev_1.key) AND (timeentrymetadatarevision.openingauditid = mdrev_1.closingauditid))
  • Rows Removed by Filter: 1
  • Heap Blocks: exact=20904
  • Buffers: shared hit=459623
  • Worker 0: actual time=0.008..0.008 rows=1 loops=17766
  • Buffers: shared hit=166365
  • Worker 1: actual time=0.010..0.010 rows=1 loops=15467
  • Buffers: shared hit=144743
70. 16.363 114.541 ↓ 0.0 0 49,089 / 3

BitmapAnd (cost=3.64..3.64 rows=1 width=0) (actual time=0.007..0.007 rows=0 loops=49,089)

  • Buffers: shared hit=394857
  • Worker 0: actual time=0.007..0.007 rows=0 loops=17766
  • Buffers: shared hit=142879
  • Worker 1: actual time=0.008..0.008 rows=0 loops=15467
  • Buffers: shared hit=124367
71. 49.089 49.089 ↓ 1.2 25 49,089 / 3

Bitmap Index Scan on ixtemrtimeentryid (cost=0.00..1.64 rows=21 width=0) (actual time=0.003..0.003 rows=25 loops=49,089)

  • Index Cond: (timeentrymetadatarevision.timeentryid = mdrev_1.timeentryid)
  • Buffers: shared hit=197001
  • Worker 0: actual time=0.003..0.003 rows=25 loops=17766
  • Buffers: shared hit=71323
  • Worker 1: actual time=0.004..0.004 rows=26 loops=15467
  • Buffers: shared hit=62032
72. 49.089 49.089 ↑ 6.0 6 49,089 / 3

Bitmap Index Scan on ixtemr2fromtimestamputc (cost=0.00..1.75 rows=36 width=0) (actual time=0.003..0.003 rows=6 loops=49,089)

  • Index Cond: (timeentrymetadatarevision.fromtimestamputc = mdrev_1.totimestamputc)
  • Buffers: shared hit=197856
  • Worker 0: actual time=0.002..0.002 rows=6 loops=17766
  • Buffers: shared hit=71556
  • Worker 1: actual time=0.003..0.003 rows=6 loops=15467
  • Buffers: shared hit=62335
73. 0.903 0.903 ↑ 1.0 1 301 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser_2 (cost=0.56..2.48 rows=1 width=78) (actual time=0.009..0.009 rows=1 loops=301)

  • Output: effectiveuser_2.id, effectiveuser_2.revisionauditid, effectiveuser_2.keyuri, effectiveuser_2.parentid, effectiveuser_2.index, effectiveuser_2.uri, effectiveuser_2.slug, effectiveuser_2."boolean", effectiveuser_2.date, effectiveuser_2.number, effectiveuser_2.text, effectiveuser_2."time", effectiveuser_2.timespan, effectiveuser_2.daterange_startdate, effectiveuser_2.daterange_enddate, effectiveuser_2.daterange_relativedaterangeuri, effectiveuser_2.daterange_relativedaterangeasofdate, effectiveuser_2.workdayduration_decimalworkdays, effectiveuser_2.workdayduration_workdays, effectiveuser_2.workdayduration_hours, effectiveuser_2.workdayduration_minutes
  • Index Cond: ((effectiveuser_2.revisionauditid = mdrev_1.openingauditid) AND (upper(effectiveuser_2.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=1511
  • Worker 0: actual time=0.009..0.009 rows=1 loops=114
  • Buffers: shared hit=572
  • Worker 1: actual time=0.009..0.010 rows=1 loops=92
  • Buffers: shared hit=462
74. 0.301 0.301 ↑ 1.0 1 301 / 3

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser_2 (cost=0.56..2.48 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=301)

  • Output: actualuser_2.id, actualuser_2.revisionauditid, actualuser_2.keyuri, actualuser_2.parentid, actualuser_2.index, actualuser_2.uri, actualuser_2.slug, actualuser_2."boolean", actualuser_2.date, actualuser_2.number, actualuser_2.text, actualuser_2."time", actualuser_2.timespan, actualuser_2.daterange_startdate, actualuser_2.daterange_enddate, actualuser_2.daterange_relativedaterangeuri, actualuser_2.daterange_relativedaterangeasofdate, actualuser_2.workdayduration_decimalworkdays, actualuser_2.workdayduration_workdays, actualuser_2.workdayduration_hours, actualuser_2.workdayduration_minutes
  • Index Cond: ((actualuser_2.revisionauditid = mdrev_1.openingauditid) AND (upper(actualuser_2.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=1505
  • Worker 0: actual time=0.003..0.003 rows=1 loops=114
  • Buffers: shared hit=570
  • Worker 1: actual time=0.003..0.004 rows=1 loops=92
  • Buffers: shared hit=460
75. 0.301 1.806 ↓ 0.0 0 301 / 3

Nested Loop Left Join (cost=0.86..3.88 rows=1 width=24) (actual time=0.018..0.018 rows=0 loops=301)

  • Output: rev_1_1.timeentryid, rev_1_1.totimestamputc
  • Inner Unique: true
  • Filter: (child_rev.id IS NULL)
  • Rows Removed by Filter: 1
  • Buffers: shared hit=3099
  • Worker 0: actual time=0.018..0.018 rows=0 loops=114
  • Buffers: shared hit=1146
  • Worker 1: actual time=0.019..0.019 rows=0 loops=92
  • Buffers: shared hit=968
76. 1.003 1.003 ↑ 1.0 1 301 / 3

Index Scan using ixtertimeentryid on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_1_1 (cost=0.43..3.39 rows=1 width=40) (actual time=0.008..0.010 rows=1 loops=301)

  • Output: rev_1_1.id, rev_1_1.txid, rev_1_1.previousrevisionid, rev_1_1.timeentryid, rev_1_1.fromtimestamputc, rev_1_1.totimestamputc, rev_1_1.openingauditid, rev_1_1.closingauditid, rev_1_1.userid, rev_1_1.entrydate, rev_1_1.timeallocationtype, rev_1_1.hours, rev_1_1.intime, rev_1_1.outtime
  • Index Cond: (rev_1_1.timeentryid = mdrev_1.timeentryid)
  • Filter: (rev_1_1.totimestamputc = mdrev_1.totimestamputc)
  • Rows Removed by Filter: 3
  • Buffers: shared hit=1893
  • Worker 0: actual time=0.008..0.010 rows=1 loops=114
  • Buffers: shared hit=689
  • Worker 1: actual time=0.008..0.011 rows=1 loops=92
  • Buffers: shared hit=599
77. 0.502 0.502 ↑ 1.0 1 301 / 3

Index Scan using timeentryrevision_uniquepreviousrevisionid on "2f766932716d4761981a2698126f0f51".timeentryrevision child_rev (cost=0.43..0.48 rows=1 width=32) (actual time=0.005..0.005 rows=1 loops=301)

  • Output: child_rev.id, child_rev.txid, child_rev.previousrevisionid, child_rev.timeentryid, child_rev.fromtimestamputc, child_rev.totimestamputc, child_rev.openingauditid, child_rev.closingauditid, child_rev.userid, child_rev.entrydate, child_rev.timeallocationtype, child_rev.hours, child_rev.intime, child_rev.outtime
  • Index Cond: (child_rev.previousrevisionid = rev_1_1.id)
  • Buffers: shared hit=1206
  • Worker 0: actual time=0.005..0.005 rows=1 loops=114
  • Buffers: shared hit=457
  • Worker 1: actual time=0.005..0.005 rows=1 loops=92
  • Buffers: shared hit=369
78. 0.002 3.595 ↓ 10.0 10 1

Subquery Scan on *SELECT* 6 (cost=3.01..50.57 rows=1 width=110) (actual time=0.270..3.595 rows=10 loops=1)

  • Output: "*SELECT* 6".entrydate, "*SELECT* 6".modifiedonutc, "*SELECT* 6".action, "*SELECT* 6".validuntilutc, "*SELECT* 6".modifiedbyuserid, "*SELECT* 6".modifiedbyuseruri, "*SELECT* 6".timesheetid, "*SELECT* 6".userid
  • Buffers: shared hit=2128
79. 0.008 3.593 ↓ 10.0 10 1

Result (cost=3.01..50.56 rows=1 width=378) (actual time=0.269..3.593 rows=10 loops=1)

  • Output: ts_6.id, ts_6.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_3.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_3.uri, NULL::integer, NULL::text, NULL::text, oefvr.fromtimestamputc, oefvr.totimestamputc, NULL::text
  • One-Time Filter: (101 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=2128
80. 0.006 3.585 ↓ 10.0 10 1

Nested Loop Semi Join (cost=3.01..50.56 rows=1 width=378) (actual time=0.264..3.585 rows=10 loops=1)

  • Output: ts_6.id, ts_6.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_3.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_3.uri, NULL::integer, NULL::text, NULL::text, oefvr.fromtimestamputc, oefvr.totimestamputc, NULL::text
  • Buffers: shared hit=2128
81. 0.011 3.029 ↓ 10.0 10 1

Nested Loop Left Join (cost=2.56..47.28 rows=1 width=102) (actual time=0.194..3.029 rows=10 loops=1)

  • Output: oefvr.fromtimestamputc, oefvr.totimestamputc, rev_3.entrydate, ts_6.id, ts_6.userid, effectiveuser_3.uri
  • Buffers: shared hit=2064
82. 0.011 2.978 ↓ 10.0 10 1

Nested Loop Left Join (cost=2.00..44.69 rows=1 width=118) (actual time=0.180..2.978 rows=10 loops=1)

  • Output: oefvr.fromtimestamputc, oefvr.totimestamputc, oefvr.openingauditid, rev_3.entrydate, ts_6.id, ts_6.userid, effectiveuser_3.uri
  • Buffers: shared hit=2014
83. 0.009 2.877 ↓ 10.0 10 1

Nested Loop (cost=1.44..42.10 rows=1 width=56) (actual time=0.160..2.877 rows=10 loops=1)

  • Output: oefvr.fromtimestamputc, oefvr.totimestamputc, oefvr.openingauditid, rev_3.entrydate, ts_6.id, ts_6.userid
  • Buffers: shared hit=1963
84. 0.013 2.228 ↓ 10.0 10 1

Nested Loop (cost=1.15..41.44 rows=1 width=40) (actual time=0.136..2.228 rows=10 loops=1)

  • Output: oefvr.fromtimestamputc, oefvr.totimestamputc, oefvr.openingauditid, rev_3.entrydate, rev_3.userid
  • Buffers: shared hit=1859
85. 0.180 2.155 ↓ 10.0 10 1

Nested Loop Anti Join (cost=0.72..36.93 rows=1 width=48) (actual time=0.120..2.155 rows=10 loops=1)

  • Output: oefvr.fromtimestamputc, oefvr.totimestamputc, oefvr.objectid, oefvr.openingauditid
  • Buffers: shared hit=1811
86. 0.187 0.187 ↓ 37.2 447 1

Index Scan using ixoefvr2fromtimestamputc on "2f766932716d4761981a2698126f0f51".objectextensionfieldvaluerevision oefvr (cost=0.29..7.41 rows=12 width=48) (actual time=0.037..0.187 rows=447 loops=1)

  • Output: oefvr.id, oefvr.txid, oefvr.previousrevisionid, oefvr.objectextensionfieldvalueid, oefvr.fromtimestamputc, oefvr.totimestamputc, oefvr.openingauditid, oefvr.closingauditid, oefvr.tagid, oefvr.objectid, oefvr.definitionid, oefvr.numericvalue, oefvr.textvalue, oefvr.urivalue
  • Index Cond: ((oefvr.fromtimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (oefvr.fromtimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
  • Buffers: shared hit=20
87. 1.788 1.788 ↑ 1.0 1 447

Index Scan using timeentryrevision_singleinitialrevision on "2f766932716d4761981a2698126f0f51".timeentryrevision timeentryrevision_1 (cost=0.43..2.45 rows=1 width=24) (actual time=0.004..0.004 rows=1 loops=447)

  • Output: timeentryrevision_1.id, timeentryrevision_1.txid, timeentryrevision_1.previousrevisionid, timeentryrevision_1.timeentryid, timeentryrevision_1.fromtimestamputc, timeentryrevision_1.totimestamputc, timeentryrevision_1.openingauditid, timeentryrevision_1.closingauditid, timeentryrevision_1.userid, timeentryrevision_1.entrydate, timeentryrevision_1.timeallocationtype, timeentryrevision_1.hours, timeentryrevision_1.intime, timeentryrevision_1.outtime
  • Index Cond: (timeentryrevision_1.timeentryid = oefvr.objectid)
  • Filter: (timeentryrevision_1.fromtimestamputc = oefvr.fromtimestamputc)
  • Rows Removed by Filter: 0
  • Buffers: shared hit=1791
88. 0.060 0.060 ↑ 1.0 1 10

Index Scan using ixtertimeentryid on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_3 (cost=0.43..4.50 rows=1 width=40) (actual time=0.006..0.006 rows=1 loops=10)

  • Output: rev_3.id, rev_3.txid, rev_3.previousrevisionid, rev_3.timeentryid, rev_3.fromtimestamputc, rev_3.totimestamputc, rev_3.openingauditid, rev_3.closingauditid, rev_3.userid, rev_3.entrydate, rev_3.timeallocationtype, rev_3.hours, rev_3.intime, rev_3.outtime
  • Index Cond: (rev_3.timeentryid = oefvr.objectid)
  • Filter: ((rev_3.fromtimestamputc <= oefvr.fromtimestamputc) AND ((rev_3.totimestamputc IS NULL) OR (rev_3.totimestamputc > oefvr.fromtimestamputc)))
  • Rows Removed by Filter: 1
  • Buffers: shared hit=48
89. 0.640 0.640 ↑ 5.0 1 10

Index Scan using uix2tsuseridstartdate on "2f766932716d4761981a2698126f0f51".timesheet ts_6 (cost=0.29..0.61 rows=5 width=28) (actual time=0.064..0.064 rows=1 loops=10)

  • Output: ts_6.id, ts_6.userid, ts_6.startdate, ts_6.enddate, ts_6.approvalstatus, ts_6.duedate, ts_6.autosubmitdatetimeutc, ts_6.lastautosubmitattemptdatetimeutc, ts_6.createdonutc
  • Index Cond: ((ts_6.userid = rev_3.userid) AND (rev_3.entrydate >= ts_6.startdate))
  • Filter: (rev_3.entrydate <= ts_6.enddate)
  • Rows Removed by Filter: 45
  • Buffers: shared hit=104
90. 0.090 0.090 ↑ 1.0 1 10

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser_3 (cost=0.56..2.58 rows=1 width=78) (actual time=0.009..0.009 rows=1 loops=10)

  • Output: effectiveuser_3.id, effectiveuser_3.revisionauditid, effectiveuser_3.keyuri, effectiveuser_3.parentid, effectiveuser_3.index, effectiveuser_3.uri, effectiveuser_3.slug, effectiveuser_3."boolean", effectiveuser_3.date, effectiveuser_3.number, effectiveuser_3.text, effectiveuser_3."time", effectiveuser_3.timespan, effectiveuser_3.daterange_startdate, effectiveuser_3.daterange_enddate, effectiveuser_3.daterange_relativedaterangeuri, effectiveuser_3.daterange_relativedaterangeasofdate, effectiveuser_3.workdayduration_decimalworkdays, effectiveuser_3.workdayduration_workdays, effectiveuser_3.workdayduration_hours, effectiveuser_3.workdayduration_minutes
  • Index Cond: ((effectiveuser_3.revisionauditid = oefvr.openingauditid) AND (upper(effectiveuser_3.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=51
91. 0.040 0.040 ↑ 1.0 1 10

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser_3 (cost=0.56..2.58 rows=1 width=16) (actual time=0.004..0.004 rows=1 loops=10)

  • Output: actualuser_3.id, actualuser_3.revisionauditid, actualuser_3.keyuri, actualuser_3.parentid, actualuser_3.index, actualuser_3.uri, actualuser_3.slug, actualuser_3."boolean", actualuser_3.date, actualuser_3.number, actualuser_3.text, actualuser_3."time", actualuser_3.timespan, actualuser_3.daterange_startdate, actualuser_3.daterange_enddate, actualuser_3.daterange_relativedaterangeuri, actualuser_3.daterange_relativedaterangeasofdate, actualuser_3.workdayduration_decimalworkdays, actualuser_3.workdayduration_workdays, actualuser_3.workdayduration_hours, actualuser_3.workdayduration_minutes
  • Index Cond: ((actualuser_3.revisionauditid = oefvr.openingauditid) AND (upper(actualuser_3.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=50
92. 0.550 0.550 ↑ 1.0 1 10

Index Scan using ixtpsstimesheetid on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot timesheetpolicysettingssnapshot_3 (cost=0.43..3.26 rows=1 width=16) (actual time=0.055..0.055 rows=1 loops=10)

  • Output: timesheetpolicysettingssnapshot_3.id, timesheetpolicysettingssnapshot_3.timesheetid, timesheetpolicysettingssnapshot_3.parentid, timesheetpolicysettingssnapshot_3.index, timesheetpolicysettingssnapshot_3.key, timesheetpolicysettingssnapshot_3.uri, timesheetpolicysettingssnapshot_3.slug, timesheetpolicysettingssnapshot_3."boolean", timesheetpolicysettingssnapshot_3.date, timesheetpolicysettingssnapshot_3.number, timesheetpolicysettingssnapshot_3.text, timesheetpolicysettingssnapshot_3."time", timesheetpolicysettingssnapshot_3.timespan, timesheetpolicysettingssnapshot_3.daterange_startdate, timesheetpolicysettingssnapshot_3.daterange_enddate, timesheetpolicysettingssnapshot_3.daterange_relativedaterangeuri, timesheetpolicysettingssnapshot_3.daterange_relativedaterangeasofdate, timesheetpolicysettingssnapshot_3.workdayduration_decimalworkdays, timesheetpolicysettingssnapshot_3.workdayduration_workdays, timesheetpolicysettingssnapshot_3.workdayduration_hours, timesheetpolicysettingssnapshot_3.workdayduration_minutes
  • Index Cond: (timesheetpolicysettingssnapshot_3.timesheetid = ts_6.id)
  • Filter: ((upper(timesheetpolicysettingssnapshot_3.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text) AND (upper(timesheetpolicysettingssnapshot_3.uri) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text))
  • Rows Removed by Filter: 46
  • Buffers: shared hit=64
93. 0.001 2.998 ↓ 0.0 0 1

Subquery Scan on *SELECT* 7 (cost=3.73..982.55 rows=1 width=110) (actual time=2.997..2.998 rows=0 loops=1)

  • Output: "*SELECT* 7".entrydate, "*SELECT* 7".modifiedonutc, "*SELECT* 7".action, "*SELECT* 7".validuntilutc, "*SELECT* 7".modifiedbyuserid, "*SELECT* 7".modifiedbyuseruri, "*SELECT* 7".timesheetid, "*SELECT* 7".userid
  • Buffers: shared hit=1090
94. 0.002 2.997 ↓ 0.0 0 1

Result (cost=3.73..982.54 rows=1 width=378) (actual time=2.997..2.997 rows=0 loops=1)

  • Output: ts_7.id, ts_7.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_4.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_4.uri, NULL::integer, NULL::text, NULL::text, oefvr_1.totimestamputc, NULL::timestamp without time zone, NULL::text
  • One-Time Filter: (101 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=1090
95. 0.001 2.995 ↓ 0.0 0 1

Nested Loop Anti Join (cost=3.73..982.54 rows=1 width=378) (actual time=2.995..2.995 rows=0 loops=1)

  • Output: ts_7.id, ts_7.userid, NULL::date, NULL::date, NULL::text, 101, NULL::uuid, rev_4.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_4.uri, NULL::integer, NULL::text, NULL::text, oefvr_1.totimestamputc, NULL::timestamp without time zone, NULL::text
  • Buffers: shared hit=1090
96. 0.011 2.994 ↓ 0.0 0 1

Nested Loop Anti Join (cost=2.86..977.54 rows=1 width=110) (actual time=2.994..2.994 rows=0 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, rev_4.entrydate, ts_7.id, ts_7.userid, effectiveuser_4.uri
  • Buffers: shared hit=1090
97. 0.004 2.943 ↓ 10.0 10 1

Nested Loop Semi Join (cost=2.57..975.21 rows=1 width=142) (actual time=1.204..2.943 rows=10 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, oefvr_1.definitionid, oefvr_1.closingauditid, rev_4.entrydate, ts_7.id, ts_7.userid, effectiveuser_4.uri
  • Buffers: shared hit=1060
98. 0.004 2.409 ↓ 2.0 10 1

Nested Loop (cost=2.13..956.09 rows=5 width=142) (actual time=1.137..2.409 rows=10 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, oefvr_1.definitionid, oefvr_1.closingauditid, rev_4.entrydate, ts_7.id, ts_7.userid, effectiveuser_4.uri
  • Buffers: shared hit=996
99. 0.008 1.825 ↓ 10.0 10 1

Nested Loop Left Join (cost=1.84..955.43 rows=1 width=126) (actual time=1.118..1.825 rows=10 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, oefvr_1.definitionid, oefvr_1.closingauditid, rev_4.entrydate, rev_4.userid, effectiveuser_4.uri
  • Buffers: shared hit=892
100. 0.010 1.777 ↓ 10.0 10 1

Nested Loop Left Join (cost=1.28..952.84 rows=1 width=142) (actual time=1.105..1.777 rows=10 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, oefvr_1.openingauditid, oefvr_1.definitionid, oefvr_1.closingauditid, rev_4.entrydate, rev_4.userid, effectiveuser_4.uri
  • Buffers: shared hit=842
101. 0.000 1.687 ↓ 10.0 10 1

Nested Loop (cost=0.72..950.25 rows=1 width=80) (actual time=1.088..1.687 rows=10 loops=1)

  • Output: oefvr_1.totimestamputc, oefvr_1.objectid, oefvr_1.openingauditid, oefvr_1.definitionid, oefvr_1.closingauditid, rev_4.entrydate, rev_4.userid
  • Buffers: shared hit=792
102. 1.045 1.045 ↓ 130.0 130 1

Index Scan using ixoefvr2fromtimestamputc on "2f766932716d4761981a2698126f0f51".objectextensionfieldvaluerevision oefvr_1 (cost=0.29..945.74 rows=1 width=72) (actual time=0.958..1.045 rows=130 loops=1)

  • Output: oefvr_1.id, oefvr_1.txid, oefvr_1.previousrevisionid, oefvr_1.objectextensionfieldvalueid, oefvr_1.fromtimestamputc, oefvr_1.totimestamputc, oefvr_1.openingauditid, oefvr_1.closingauditid, oefvr_1.tagid, oefvr_1.objectid, oefvr_1.definitionid, oefvr_1.numericvalue, oefvr_1.textvalue, oefvr_1.urivalue
  • Index Cond: ((oefvr_1.totimestamputc IS NOT NULL) AND (oefvr_1.totimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (oefvr_1.totimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
  • Buffers: shared hit=255
103. 0.650 0.650 ↓ 0.0 0 130

Index Scan using ixtertimeentryid on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_4 (cost=0.43..4.50 rows=1 width=40) (actual time=0.004..0.005 rows=0 loops=130)

  • Output: rev_4.id, rev_4.txid, rev_4.previousrevisionid, rev_4.timeentryid, rev_4.fromtimestamputc, rev_4.totimestamputc, rev_4.openingauditid, rev_4.closingauditid, rev_4.userid, rev_4.entrydate, rev_4.timeallocationtype, rev_4.hours, rev_4.intime, rev_4.outtime
  • Index Cond: (rev_4.timeentryid = oefvr_1.objectid)
  • Filter: ((rev_4.fromtimestamputc <= oefvr_1.totimestamputc) AND ((rev_4.totimestamputc IS NULL) OR (rev_4.totimestamputc > oefvr_1.totimestamputc)))
  • Rows Removed by Filter: 1
  • Buffers: shared hit=537
104. 0.080 0.080 ↑ 1.0 1 10

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser_4 (cost=0.56..2.58 rows=1 width=78) (actual time=0.008..0.008 rows=1 loops=10)

  • Output: effectiveuser_4.id, effectiveuser_4.revisionauditid, effectiveuser_4.keyuri, effectiveuser_4.parentid, effectiveuser_4.index, effectiveuser_4.uri, effectiveuser_4.slug, effectiveuser_4."boolean", effectiveuser_4.date, effectiveuser_4.number, effectiveuser_4.text, effectiveuser_4."time", effectiveuser_4.timespan, effectiveuser_4.daterange_startdate, effectiveuser_4.daterange_enddate, effectiveuser_4.daterange_relativedaterangeuri, effectiveuser_4.daterange_relativedaterangeasofdate, effectiveuser_4.workdayduration_decimalworkdays, effectiveuser_4.workdayduration_workdays, effectiveuser_4.workdayduration_hours, effectiveuser_4.workdayduration_minutes
  • Index Cond: ((effectiveuser_4.revisionauditid = oefvr_1.openingauditid) AND (upper(effectiveuser_4.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=50
105. 0.040 0.040 ↑ 1.0 1 10

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser_4 (cost=0.56..2.58 rows=1 width=16) (actual time=0.004..0.004 rows=1 loops=10)

  • Output: actualuser_4.id, actualuser_4.revisionauditid, actualuser_4.keyuri, actualuser_4.parentid, actualuser_4.index, actualuser_4.uri, actualuser_4.slug, actualuser_4."boolean", actualuser_4.date, actualuser_4.number, actualuser_4.text, actualuser_4."time", actualuser_4.timespan, actualuser_4.daterange_startdate, actualuser_4.daterange_enddate, actualuser_4.daterange_relativedaterangeuri, actualuser_4.daterange_relativedaterangeasofdate, actualuser_4.workdayduration_decimalworkdays, actualuser_4.workdayduration_workdays, actualuser_4.workdayduration_hours, actualuser_4.workdayduration_minutes
  • Index Cond: ((actualuser_4.revisionauditid = oefvr_1.openingauditid) AND (upper(actualuser_4.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=50
106. 0.580 0.580 ↑ 5.0 1 10

Index Scan using uix2tsuseridstartdate on "2f766932716d4761981a2698126f0f51".timesheet ts_7 (cost=0.29..0.61 rows=5 width=28) (actual time=0.057..0.058 rows=1 loops=10)

  • Output: ts_7.id, ts_7.userid, ts_7.startdate, ts_7.enddate, ts_7.approvalstatus, ts_7.duedate, ts_7.autosubmitdatetimeutc, ts_7.lastautosubmitattemptdatetimeutc, ts_7.createdonutc
  • Index Cond: ((ts_7.userid = rev_4.userid) AND (rev_4.entrydate >= ts_7.startdate))
  • Filter: (rev_4.entrydate <= ts_7.enddate)
  • Rows Removed by Filter: 45
  • Buffers: shared hit=104
107. 0.530 0.530 ↑ 1.0 1 10

Index Scan using ixtpsstimesheetid on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot timesheetpolicysettingssnapshot_4 (cost=0.43..3.26 rows=1 width=16) (actual time=0.053..0.053 rows=1 loops=10)

  • Output: timesheetpolicysettingssnapshot_4.id, timesheetpolicysettingssnapshot_4.timesheetid, timesheetpolicysettingssnapshot_4.parentid, timesheetpolicysettingssnapshot_4.index, timesheetpolicysettingssnapshot_4.key, timesheetpolicysettingssnapshot_4.uri, timesheetpolicysettingssnapshot_4.slug, timesheetpolicysettingssnapshot_4."boolean", timesheetpolicysettingssnapshot_4.date, timesheetpolicysettingssnapshot_4.number, timesheetpolicysettingssnapshot_4.text, timesheetpolicysettingssnapshot_4."time", timesheetpolicysettingssnapshot_4.timespan, timesheetpolicysettingssnapshot_4.daterange_startdate, timesheetpolicysettingssnapshot_4.daterange_enddate, timesheetpolicysettingssnapshot_4.daterange_relativedaterangeuri, timesheetpolicysettingssnapshot_4.daterange_relativedaterangeasofdate, timesheetpolicysettingssnapshot_4.workdayduration_decimalworkdays, timesheetpolicysettingssnapshot_4.workdayduration_workdays, timesheetpolicysettingssnapshot_4.workdayduration_hours, timesheetpolicysettingssnapshot_4.workdayduration_minutes
  • Index Cond: (timesheetpolicysettingssnapshot_4.timesheetid = ts_7.id)
  • Filter: ((upper(timesheetpolicysettingssnapshot_4.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text) AND (upper(timesheetpolicysettingssnapshot_4.uri) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT:GEN4-TIMESHEET'::text))
  • Rows Removed by Filter: 46
  • Buffers: shared hit=64
108. 0.040 0.040 ↑ 1.0 1 10

Index Scan using ixoefvrobjectid on "2f766932716d4761981a2698126f0f51".objectextensionfieldvaluerevision (cost=0.29..2.32 rows=1 width=56) (actual time=0.004..0.004 rows=1 loops=10)

  • Output: objectextensionfieldvaluerevision.id, objectextensionfieldvaluerevision.txid, objectextensionfieldvaluerevision.previousrevisionid, objectextensionfieldvaluerevision.objectextensionfieldvalueid, objectextensionfieldvaluerevision.fromtimestamputc, objectextensionfieldvaluerevision.totimestamputc, objectextensionfieldvaluerevision.openingauditid, objectextensionfieldvaluerevision.closingauditid, objectextensionfieldvaluerevision.tagid, objectextensionfieldvaluerevision.objectid, objectextensionfieldvaluerevision.definitionid, objectextensionfieldvaluerevision.numericvalue, objectextensionfieldvaluerevision.textvalue, objectextensionfieldvaluerevision.urivalue
  • Index Cond: (objectextensionfieldvaluerevision.objectid = oefvr_1.objectid)
  • Filter: ((objectextensionfieldvaluerevision.definitionid = oefvr_1.definitionid) AND (objectextensionfieldvaluerevision.fromtimestamputc = oefvr_1.totimestamputc) AND (objectextensionfieldvaluerevision.openingauditid = oefvr_1.closingauditid))
  • Buffers: shared hit=30
109. 0.000 0.000 ↓ 0.0 0

Nested Loop Left Join (cost=0.86..4.98 rows=1 width=24) (never executed)

  • Output: rev_1_2.timeentryid, rev_1_2.totimestamputc
  • Inner Unique: true
  • Filter: (child_rev_1.id IS NULL)
110. 0.000 0.000 ↓ 0.0 0

Index Scan using ixtertimeentryid on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_1_2 (cost=0.43..4.49 rows=1 width=40) (never executed)

  • Output: rev_1_2.id, rev_1_2.txid, rev_1_2.previousrevisionid, rev_1_2.timeentryid, rev_1_2.fromtimestamputc, rev_1_2.totimestamputc, rev_1_2.openingauditid, rev_1_2.closingauditid, rev_1_2.userid, rev_1_2.entrydate, rev_1_2.timeallocationtype, rev_1_2.hours, rev_1_2.intime, rev_1_2.outtime
  • Index Cond: (rev_1_2.timeentryid = oefvr_1.objectid)
  • Filter: (rev_1_2.totimestamputc = oefvr_1.totimestamputc)
111. 0.000 0.000 ↓ 0.0 0

Index Scan using timeentryrevision_uniquepreviousrevisionid on "2f766932716d4761981a2698126f0f51".timeentryrevision child_rev_1 (cost=0.43..0.48 rows=1 width=32) (never executed)

  • Output: child_rev_1.id, child_rev_1.txid, child_rev_1.previousrevisionid, child_rev_1.timeentryid, child_rev_1.fromtimestamputc, child_rev_1.totimestamputc, child_rev_1.openingauditid, child_rev_1.closingauditid, child_rev_1.userid, child_rev_1.entrydate, child_rev_1.timeallocationtype, child_rev_1.hours, child_rev_1.intime, child_rev_1.outtime
  • Index Cond: (child_rev_1.previousrevisionid = rev_1_2.id)
112. 0.123 136.779 ↓ 749.0 749 1

Subquery Scan on *SELECT* 8 (cost=1,002.85..104,426.30 rows=1 width=110) (actual time=88.282..136.779 rows=749 loops=1)

  • Output: "*SELECT* 8".entrydate, "*SELECT* 8".modifiedonutc, "*SELECT* 8".action, "*SELECT* 8".validuntilutc, "*SELECT* 8".modifiedbyuserid, "*SELECT* 8".modifiedbyuseruri, "*SELECT* 8".timesheetid, "*SELECT* 8".userid
  • Buffers: shared hit=116691
113. 0.173 136.656 ↓ 749.0 749 1

Result (cost=1,002.85..104,426.29 rows=1 width=378) (actual time=88.280..136.656 rows=749 loops=1)

  • Output: ts_8.id, ts_8.userid, NULL::date, NULL::date, NULL::text, 102, NULL::uuid, rev_5.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_5.uri, NULL::integer, NULL::text, NULL::text, rev_5.totimestamputc, NULL::timestamp without time zone, NULL::text
  • One-Time Filter: (102 = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Buffers: shared hit=116691
114. 0.275 136.483 ↓ 749.0 749 1

Nested Loop Left Join (cost=1,002.85..104,426.29 rows=1 width=378) (actual time=88.278..136.483 rows=749 loops=1)

  • Output: ts_8.id, ts_8.userid, NULL::date, NULL::date, NULL::text, 102, NULL::uuid, rev_5.entrydate, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, effectiveuser_5.uri, NULL::integer, NULL::text, NULL::text, rev_5.totimestamputc, NULL::timestamp without time zone, NULL::text
  • Buffers: shared hit=116691
115. 0.393 133.212 ↓ 749.0 749 1

Nested Loop Left Join (cost=1,002.28..104,423.72 rows=1 width=110) (actual time=88.264..133.212 rows=749 loops=1)

  • Output: ts_8.id, ts_8.userid, rev_5.entrydate, rev_5.totimestamputc, rev_5.closingauditid, effectiveuser_5.uri
  • Buffers: shared hit=113695
116. 0.528 130.572 ↓ 749.0 749 1

Nested Loop Left Join (cost=1,001.72..104,421.16 rows=1 width=110) (actual time=88.250..130.572 rows=749 loops=1)

  • Output: ts_8.id, ts_8.userid, rev_5.entrydate, rev_5.totimestamputc, rev_5.closingauditid, effectiveuser_5.uri
  • Buffers: shared hit=109949
117. 0.711 125.550 ↓ 749.0 749 1

Nested Loop (cost=1,001.16..104,418.60 rows=1 width=48) (actual time=88.228..125.550 rows=749 loops=1)

  • Output: ts_8.id, ts_8.userid, rev_5.entrydate, rev_5.totimestamputc, rev_5.closingauditid
  • Buffers: shared hit=106190
118. 0.000 89.636 ↓ 749.0 749 1

Gather (cost=1,000.87..104,417.74 rows=1 width=32) (actual time=88.129..89.636 rows=749 loops=1)

  • Output: rev_5.entrydate, rev_5.totimestamputc, rev_5.userid, rev_5.closingauditid
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=98118
119. 0.248 110.402 ↓ 250.0 250 3 / 3

Nested Loop Left Join (cost=0.86..103,417.64 rows=1 width=32) (actual time=80.200..110.402 rows=250 loops=3)

  • Output: rev_5.entrydate, rev_5.totimestamputc, rev_5.userid, rev_5.closingauditid
  • Inner Unique: true
  • Filter: (child_rev_2.id IS NULL)
  • Rows Removed by Filter: 4521
  • Buffers: shared hit=98118
  • Worker 0: actual time=76.865..121.434 rows=392 loops=1
  • Buffers: shared hit=42273
  • Worker 1: actual time=76.653..121.586 rows=349 loops=1
  • Buffers: shared hit=41667
120. 91.071 91.071 ↓ 1.8 4,771 3 / 3

Parallel Index Scan using ixter2fromtimestamputc on "2f766932716d4761981a2698126f0f51".timeentryrevision rev_5 (cost=0.43..97,232.36 rows=2,640 width=48) (actual time=69.050..91.071 rows=4,771 loops=3)

  • Output: rev_5.id, rev_5.txid, rev_5.previousrevisionid, rev_5.timeentryid, rev_5.fromtimestamputc, rev_5.totimestamputc, rev_5.openingauditid, rev_5.closingauditid, rev_5.userid, rev_5.entrydate, rev_5.timeallocationtype, rev_5.hours, rev_5.intime, rev_5.outtime
  • Index Cond: ((rev_5.totimestamputc IS NOT NULL) AND (rev_5.totimestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (rev_5.totimestamputc < '2020-02-04 05:00:00'::timestamp without time zone))
  • Buffers: shared hit=41507
  • Worker 0: actual time=63.027..92.812 rows=7118 loops=1
  • Buffers: shared hit=14154
  • Worker 1: actual time=66.397..93.263 rows=6961 loops=1
  • Buffers: shared hit=14099
121. 19.083 19.083 ↑ 1.0 1 14,312 / 3

Index Scan using timeentryrevision_uniquepreviousrevisionid on "2f766932716d4761981a2698126f0f51".timeentryrevision child_rev_2 (cost=0.43..2.33 rows=1 width=32) (actual time=0.004..0.004 rows=1 loops=14,312)

  • Output: child_rev_2.id, child_rev_2.txid, child_rev_2.previousrevisionid, child_rev_2.timeentryid, child_rev_2.fromtimestamputc, child_rev_2.totimestamputc, child_rev_2.openingauditid, child_rev_2.closingauditid, child_rev_2.userid, child_rev_2.entrydate, child_rev_2.timeallocationtype, child_rev_2.hours, child_rev_2.intime, child_rev_2.outtime
  • Index Cond: (child_rev_2.previousrevisionid = rev_5.id)
  • Buffers: shared hit=56611
  • Worker 0: actual time=0.004..0.004 rows=1 loops=7118
  • Buffers: shared hit=28119
  • Worker 1: actual time=0.004..0.004 rows=1 loops=6961
  • Buffers: shared hit=27568
122. 35.203 35.203 ↑ 5.0 1 749

Index Scan using uix2tsuseridstartdate on "2f766932716d4761981a2698126f0f51".timesheet ts_8 (cost=0.29..0.81 rows=5 width=28) (actual time=0.047..0.047 rows=1 loops=749)

  • Output: ts_8.id, ts_8.userid, ts_8.startdate, ts_8.enddate, ts_8.approvalstatus, ts_8.duedate, ts_8.autosubmitdatetimeutc, ts_8.lastautosubmitattemptdatetimeutc, ts_8.createdonutc
  • Index Cond: ((ts_8.userid = rev_5.userid) AND (rev_5.entrydate >= ts_8.startdate))
  • Filter: (rev_5.entrydate <= ts_8.enddate)
  • Rows Removed by Filter: 49
  • Buffers: shared hit=8072
123. 4.494 4.494 ↑ 1.0 1 749

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue effectiveuser_5 (cost=0.56..2.55 rows=1 width=78) (actual time=0.006..0.006 rows=1 loops=749)

  • Output: effectiveuser_5.id, effectiveuser_5.revisionauditid, effectiveuser_5.keyuri, effectiveuser_5.parentid, effectiveuser_5.index, effectiveuser_5.uri, effectiveuser_5.slug, effectiveuser_5."boolean", effectiveuser_5.date, effectiveuser_5.number, effectiveuser_5.text, effectiveuser_5."time", effectiveuser_5.timespan, effectiveuser_5.daterange_startdate, effectiveuser_5.daterange_enddate, effectiveuser_5.daterange_relativedaterangeuri, effectiveuser_5.daterange_relativedaterangeasofdate, effectiveuser_5.workdayduration_decimalworkdays, effectiveuser_5.workdayduration_workdays, effectiveuser_5.workdayduration_hours, effectiveuser_5.workdayduration_minutes
  • Index Cond: ((effectiveuser_5.revisionauditid = rev_5.closingauditid) AND (upper(effectiveuser_5.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:EFFECTIVE-USER'::text))
  • Buffers: shared hit=3759
124. 2.247 2.247 ↑ 1.0 1 749

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue actualuser_5 (cost=0.56..2.55 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=749)

  • Output: actualuser_5.id, actualuser_5.revisionauditid, actualuser_5.keyuri, actualuser_5.parentid, actualuser_5.index, actualuser_5.uri, actualuser_5.slug, actualuser_5."boolean", actualuser_5.date, actualuser_5.number, actualuser_5.text, actualuser_5."time", actualuser_5.timespan, actualuser_5.daterange_startdate, actualuser_5.daterange_enddate, actualuser_5.daterange_relativedaterangeuri, actualuser_5.daterange_relativedaterangeasofdate, actualuser_5.workdayduration_decimalworkdays, actualuser_5.workdayduration_workdays, actualuser_5.workdayduration_hours, actualuser_5.workdayduration_minutes
  • Index Cond: ((actualuser_5.revisionauditid = rev_5.closingauditid) AND (upper(actualuser_5.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:ACTUAL-USER'::text))
  • Buffers: shared hit=3746
125. 2.996 2.996 ↓ 0.0 0 749

Index Scan using uix4rakv_uniquekeyuri on "2f766932716d4761981a2698126f0f51".revisionauditkeyvalue changereason_1 (cost=0.56..2.55 rows=1 width=16) (actual time=0.004..0.004 rows=0 loops=749)

  • Output: changereason_1.id, changereason_1.revisionauditid, changereason_1.keyuri, changereason_1.parentid, changereason_1.index, changereason_1.uri, changereason_1.slug, changereason_1."boolean", changereason_1.date, changereason_1.number, changereason_1.text, changereason_1."time", changereason_1.timespan, changereason_1.daterange_startdate, changereason_1.daterange_enddate, changereason_1.daterange_relativedaterangeuri, changereason_1.daterange_relativedaterangeasofdate, changereason_1.workdayduration_decimalworkdays, changereason_1.workdayduration_workdays, changereason_1.workdayduration_hours, changereason_1.workdayduration_minutes
  • Index Cond: ((changereason_1.revisionauditid = rev_5.closingauditid) AND (upper(changereason_1.keyuri) = 'URN:REPLICON:REVISION-AUDIT-KEY:COMMENT'::text))
  • Buffers: shared hit=2996
126. 0.178 650.575 ↓ 1.8 1,211 1

Subquery Scan on *SELECT* 9 (cost=27,870.68..83,383.26 rows=688 width=119) (actual time=402.476..650.575 rows=1,211 loops=1)

  • Output: "*SELECT* 9".entrydate, "*SELECT* 9".modifiedonutc, "*SELECT* 9".action, "*SELECT* 9".validuntilutc, "*SELECT* 9".modifiedbyuserid, "*SELECT* 9".modifiedbyuseruri, "*SELECT* 9".timesheetid, "*SELECT* 9".userid
  • Buffers: shared hit=36627 read=6
127. 0.669 650.397 ↓ 1.8 1,211 1

Nested Loop (cost=27,870.68..83,376.38 rows=688 width=387) (actual time=402.476..650.397 rows=1,211 loops=1)

  • Output: tah.timesheetid, ts_9.userid, NULL::date, NULL::date, NULL::text, tah.action, NULL::uuid, NULL::date, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::uuid, NULL::integer, kv_ea.uri, NULL::integer, NULL::text, NULL::text, tah.timestamputc, NULL::timestamp without time zone, NULL::text
  • Buffers: shared hit=36627 read=6
128. 0.287 586.756 ↓ 1.8 1,211 1

Nested Loop Left Join (cost=27,870.25..81,301.01 rows=686 width=119) (actual time=402.405..586.756 rows=1,211 loops=1)

  • Output: tah.timesheetid, tah.action, tah.timestamputc, ts_9.userid, ts_9.id, kv_ea.uri
  • Buffers: shared hit=29766 read=6
129. 0.876 562.249 ↓ 1.8 1,211 1

Nested Loop Left Join (cost=27,869.82..61,119.97 rows=686 width=135) (actual time=402.394..562.249 rows=1,211 loops=1)

  • Output: tah.timesheetid, tah.action, tah.timestamputc, tah.id, ts_9.userid, ts_9.id, kv_ea.uri
  • Buffers: shared hit=24330 read=6
130. 0.271 533.520 ↓ 1.8 1,211 1

Nested Loop (cost=27,869.38..40,938.92 rows=686 width=64) (actual time=402.370..533.520 rows=1,211 loops=1)

  • Output: tah.timesheetid, tah.action, tah.timestamputc, tah.id, ts_9.userid, ts_9.id
  • Inner Unique: true
  • Buffers: shared hit=18894 read=6
131. 126.494 528.405 ↓ 1.8 1,211 1

Index Scan using ixtahaction on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistory tah (cost=27,868.97..39,764.51 rows=686 width=44) (actual time=402.351..528.405 rows=1,211 loops=1)

  • Output: tah.id, tah.serialnumber, tah.timesheetid, tah.action, tah.approvalcomments, tah.timestamputc, tah.approvalagenttype, tah.userid, tah.systemprocessidentifier
  • Index Cond: (tah.action = ANY ('{1,2,3,4,6,100,101,102}'::integer[]))
  • Filter: ((NOT (hashed SubPlan 5)) AND (tah.timestamputc >= '2020-02-03 05:00:00'::timestamp without time zone) AND (tah.timestamputc < '2020-02-04 05:00:00'::timestamp without time zone) AND (COALESCE(upper(tah.systemprocessidentifier), ''::text) <> 'URN:REPLICON:APPROVAL-SYSTEM-PROCESS:TIMESHEET-SUBMIT-SCRIPT-DATA-AND-VALIDATION'::text))
  • Rows Removed by Filter: 292620
  • Buffers: shared hit=14050 read=6
132.          

SubPlan (for Index Scan)

133. 0.303 401.911 ↓ 1,002.0 1,002 1

Nested Loop (cost=27,619.00..27,868.54 rows=1 width=16) (actual time=336.531..401.911 rows=1,002 loops=1)

  • Output: tah_1.id
  • Buffers: shared hit=6888
134. 11.393 399.103 ↓ 501.0 501 1

Hash Join (cost=27,618.58..27,866.08 rows=1 width=24) (actual time=336.511..399.103 rows=501 loops=1)

  • Output: faas.timesheetid, faas.submission_serialnumber, faas.nextaction_serialnumber
  • Inner Unique: true
  • Hash Cond: ((faas.timesheetid = tah_2.timesheetid) AND (faas.nextaction_serialnumber = tah_2.serialnumber))
  • Buffers: shared hit=4806
135.          

CTE firstactionaftersubmit

136. 89.131 359.089 ↓ 10.0 98,270 1

HashAggregate (cost=25,757.08..25,855.10 rows=9,802 width=24) (actual time=332.586..359.089 rows=98,270 loops=1)

  • Output: submissions.timesheetid, submissions.serialnumber, min(tah_3.serialnumber)
  • Group Key: submissions.timesheetid, submissions.serialnumber
  • Buffers: shared hit=4780
137.          

CTE submissions

138. 37.938 37.938 ↓ 1.0 98,270 1

Index Scan using ixtahaction on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistory (cost=0.42..6,096.54 rows=98,025 width=20) (actual time=0.028..37.938 rows=98,270 loops=1)

  • Output: timesheetapprovalhistory.timesheetid, timesheetapprovalhistory.serialnumber
  • Index Cond: (timesheetapprovalhistory.action = 1)
  • Buffers: shared hit=2647
139. 83.280 269.958 ↓ 2.1 224,371 1

Hash Join (cost=10,547.24..18,856.42 rows=107,216 width=24) (actual time=125.602..269.958 rows=224,371 loops=1)

  • Output: submissions.timesheetid, submissions.serialnumber, tah_3.serialnumber
  • Hash Cond: (submissions.timesheetid = tah_3.timesheetid)
  • Join Filter: (tah_3.serialnumber > submissions.serialnumber)
  • Rows Removed by Join Filter: 127034
  • Buffers: shared hit=4780
140. 63.064 63.064 ↓ 1.0 98,270 1

CTE Scan on submissions (cost=0.00..1,960.50 rows=98,025 width=20) (actual time=0.031..63.064 rows=98,270 loops=1)

  • Output: submissions.timesheetid, submissions.serialnumber
  • Buffers: shared hit=2647
141. 55.177 123.614 ↑ 1.0 293,831 1

Hash (cost=6,874.14..6,874.14 rows=293,848 width=20) (actual time=123.614..123.614 rows=293,831 loops=1)

  • Output: tah_3.serialnumber, tah_3.timesheetid
  • Buckets: 524288 Batches: 1 Memory Usage: 19018kB
  • Buffers: shared hit=2133
142. 68.437 68.437 ↑ 1.0 293,831 1

Index Only Scan using ixtah2timesheetid on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistory tah_3 (cost=0.42..6,874.14 rows=293,848 width=20) (actual time=0.100..68.437 rows=293,831 loops=1)

  • Output: tah_3.serialnumber, tah_3.timesheetid
  • Heap Fetches: 42499
  • Buffers: shared hit=2133
143. 384.140 384.140 ↓ 10.0 98,270 1

CTE Scan on firstactionaftersubmit faas (cost=0.00..196.04 rows=9,802 width=24) (actual time=332.588..384.140 rows=98,270 loops=1)

  • Output: faas.timesheetid, faas.submission_serialnumber, faas.nextaction_serialnumber
  • Buffers: shared hit=4780
144. 0.089 3.570 ↓ 33.5 502 1

Hash (cost=1,763.25..1,763.25 rows=15 width=20) (actual time=3.570..3.570 rows=502 loops=1)

  • Output: tah_2.timesheetid, tah_2.serialnumber
  • Buckets: 1024 Batches: 1 Memory Usage: 34kB
  • Buffers: shared hit=26
145. 3.481 3.481 ↓ 33.5 502 1

Index Scan using ixtahaction on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistory tah_2 (cost=0.42..1,763.25 rows=15 width=20) (actual time=0.046..3.481 rows=502 loops=1)

  • Output: tah_2.timesheetid, tah_2.serialnumber
  • Index Cond: (tah_2.action = 3)
  • Filter: (upper(tah_2.systemprocessidentifier) = 'URN:REPLICON:APPROVAL-SYSTEM-PROCESS:TIMESHEET-SUBMIT-SCRIPT-DATA-AND-VALIDATION'::text)
  • Rows Removed by Filter: 2410
  • Buffers: shared hit=26
146. 2.505 2.505 ↓ 2.0 2 501

Index Scan using ixtah2timesheetid on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistory tah_1 (cost=0.42..2.44 rows=1 width=36) (actual time=0.004..0.005 rows=2 loops=501)

  • Output: tah_1.id, tah_1.serialnumber, tah_1.timesheetid, tah_1.action, tah_1.approvalcomments, tah_1.timestamputc, tah_1.approvalagenttype, tah_1.userid, tah_1.systemprocessidentifier
  • Index Cond: ((tah_1.timesheetid = faas.timesheetid) AND (tah_1.serialnumber >= faas.submission_serialnumber) AND (tah_1.serialnumber <= faas.nextaction_serialnumber))
  • Buffers: shared hit=2082
147. 4.844 4.844 ↑ 1.0 1 1,211

Index Scan using timesheet_pkey on "2f766932716d4761981a2698126f0f51".timesheet ts_9 (cost=0.42..1.71 rows=1 width=20) (actual time=0.004..0.004 rows=1 loops=1,211)

  • Output: ts_9.id, ts_9.userid, ts_9.startdate, ts_9.enddate, ts_9.approvalstatus, ts_9.duedate, ts_9.autosubmitdatetimeutc, ts_9.lastautosubmitattemptdatetimeutc, ts_9.createdonutc
  • Index Cond: (ts_9.id = tah.timesheetid)
  • Buffers: shared hit=4844
148. 27.853 27.853 ↑ 1.0 1 1,211

Index Scan using ixtahkvtimesheetapprovalhistoryid on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistorykeyvalue kv_ea (cost=0.43..29.41 rows=1 width=87) (actual time=0.023..0.023 rows=1 loops=1,211)

  • Output: kv_ea.id, kv_ea.timesheetapprovalhistoryid, kv_ea.parentid, kv_ea.index, kv_ea.key, kv_ea.uri, kv_ea.slug, kv_ea."boolean", kv_ea.date, kv_ea.number, kv_ea.text, kv_ea."time", kv_ea.timespan, kv_ea.daterange_startdate, kv_ea.daterange_enddate, kv_ea.daterange_relativedaterangeuri, kv_ea.daterange_relativedaterangeasofdate, kv_ea.workdayduration_decimalworkdays, kv_ea.workdayduration_workdays, kv_ea.workdayduration_hours, kv_ea.workdayduration_minutes
  • Index Cond: (kv_ea.timesheetapprovalhistoryid = tah.id)
  • Filter: (upper(kv_ea.key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:ACTING-EFFECTIVE-USER'::text)
  • Rows Removed by Filter: 15
  • Buffers: shared hit=5436
149. 24.220 24.220 ↑ 1.0 1 1,211

Index Scan using ixtahkvtimesheetapprovalhistoryid on "2f766932716d4761981a2698126f0f51".timesheetapprovalhistorykeyvalue kv_aa (cost=0.43..29.41 rows=1 width=16) (actual time=0.018..0.020 rows=1 loops=1,211)

  • Output: kv_aa.id, kv_aa.timesheetapprovalhistoryid, kv_aa.parentid, kv_aa.index, kv_aa.key, kv_aa.uri, kv_aa.slug, kv_aa."boolean", kv_aa.date, kv_aa.number, kv_aa.text, kv_aa."time", kv_aa.timespan, kv_aa.daterange_startdate, kv_aa.daterange_enddate, kv_aa.daterange_relativedaterangeuri, kv_aa.daterange_relativedaterangeasofdate, kv_aa.workdayduration_decimalworkdays, kv_aa.workdayduration_workdays, kv_aa.workdayduration_hours, kv_aa.workdayduration_minutes
  • Index Cond: (kv_aa.timesheetapprovalhistoryid = tah.id)
  • Filter: (upper(kv_aa.key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:ACTING-ACTUAL-USER'::text)
  • Rows Removed by Filter: 15
  • Buffers: shared hit=5436
150. 62.972 62.972 ↑ 1.0 1 1,211

Index Scan using ixtpsstimesheetid on "2f766932716d4761981a2698126f0f51".timesheetpolicysettingssnapshot tsformat_1 (cost=0.43..3.02 rows=1 width=16) (actual time=0.049..0.052 rows=1 loops=1,211)

  • Output: tsformat_1.id, tsformat_1.timesheetid, tsformat_1.parentid, tsformat_1.index, tsformat_1.key, tsformat_1.uri, tsformat_1.slug, tsformat_1."boolean", tsformat_1.date, tsformat_1.number, tsformat_1.text, tsformat_1."time", tsformat_1.timespan, tsformat_1.daterange_startdate, tsformat_1.daterange_enddate, tsformat_1.daterange_relativedaterangeuri, tsformat_1.daterange_relativedaterangeasofdate, tsformat_1.workdayduration_decimalworkdays, tsformat_1.workdayduration_workdays, tsformat_1.workdayduration_hours, tsformat_1.workdayduration_minutes
  • Index Cond: (tsformat_1.timesheetid = ts_9.id)
  • Filter: (upper(tsformat_1.key) = 'URN:REPLICON:POLICY:TIMESHEET:TIMESHEET-FORMAT'::text)
  • Rows Removed by Filter: 48
  • Buffers: shared hit=6861
151. 261.321 261.321 ↑ 1.0 1 87,107

Index Only Scan using dm_timesheetlist_facts_pkey on "2f766932716d4761981a2698126f0f51".dm_timesheetlist_facts tslist (cost=0.42..1.13 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=87,107)

  • Output: tslist.timesheetid
  • Index Cond: (tslist.timesheetid = "*SELECT* 1".timesheetid)
  • Heap Fetches: 75447
  • Buffers: shared hit=374648 read=5
152. 174.214 174.214 ↑ 1.0 1 87,107

Index Scan using timesheet_pkey on "2f766932716d4761981a2698126f0f51".timesheet ts (cost=0.42..0.45 rows=1 width=24) (actual time=0.002..0.002 rows=1 loops=87,107)

  • Output: ts.id, ts.userid, ts.startdate, ts.enddate, ts.approvalstatus, ts.duedate, ts.autosubmitdatetimeutc, ts.lastautosubmitattemptdatetimeutc, ts.createdonutc
  • Index Cond: (ts.id = tslist.timesheetid)
  • Buffers: shared hit=348428
153. 87.107 87.107 ↑ 1.0 1 87,107

Index Scan using userinfo_pkey on "2f766932716d4761981a2698126f0f51".userinfo ui (cost=0.28..0.33 rows=1 width=17) (actual time=0.001..0.001 rows=1 loops=87,107)

  • Output: ui.id, ui.firstname, ui.lastname, ui.slug, 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.displayname, ui.issampleuser, ui.defaultactivityid, ui.guidid
  • Index Cond: (ui.id = "*SELECT* 1".userid)
  • Buffers: shared hit=261377
Planning time : 263.227 ms
Execution time : 35,604.133 ms