explain.depesz.com

PostgreSQL's explain analyze made readable

Result: tb9c

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Unique (cost=601,561,101,745,635.12..601,561,103,274,886.12 rows=200 width=4) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=601,561,101,745,635.12..601,561,102,510,260.62 rows=305,850,199 width=4) (actual rows= loops=)

  • Sort Key: "*SELECT* 1".entrydate
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=28,475,298.16..601,561,051,470,357.75 rows=305,850,199 width=4) (actual rows= loops=)

  • Filter: ((SubPlan 8) OR (hashed SubPlan 18))
4. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=17,992,476.98..25,464,927.85 rows=106,830,628 width=12) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata1.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:project:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata1.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:project:(.*)$'::text))::integer ELSE NULL::integer END = project2.id)
5. 0.000 0.000 ↓ 0.0

Merge Right Join (cost=17,957,919.11..20,699,586.67 rows=106,830,628 width=138) (actual rows= loops=)

  • Merge Cond: (timeentrymetadata3.timeentryid = "*SELECT* 1".timeentryid)
6. 0.000 0.000 ↓ 0.0

Index Scan using ixtemtimeentryid on timeentrymetadata timeentrymetadata3 (cost=0.56..644,968.26 rows=5,731,882 width=79) (actual rows= loops=)

  • Filter: (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text)
7. 0.000 0.000 ↓ 0.0

Materialize (cost=17,957,918.55..18,650,818.79 rows=85,195,807 width=91) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=17,957,918.55..18,437,829.27 rows=85,195,807 width=91) (actual rows= loops=)

  • Merge Cond: ("*SELECT* 1".timeentryid = timeentrymetadata1.timeentryid)
9. 0.000 0.000 ↓ 0.0

Sort (cost=17,549,943.45..17,762,932.97 rows=85,195,807 width=28) (actual rows= loops=)

  • Sort Key: "*SELECT* 1".timeentryid
10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=326,652.15..2,833,468.87 rows=85,195,807 width=28) (actual rows= loops=)

  • Hash Cond: ("*SELECT* 1".timeentryid = timeentrymetadata6.timeentryid)
  • Filter: (((timeentrymetadata6.uri IS NULL) AND ("*SELECT* 1".timeoffentryid IS NULL) AND (("*SELECT* 1".timeallocationtype = 1) OR ("*SELECT* 1".timeallocationtype IS NULL))) OR ("*SELECT* 1".timeoffentryid IS NOT NULL))
11. 0.000 0.000 ↓ 0.0

Append (cost=1,001.55..2,186,728.36 rows=85,623,914 width=36) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 1 (cost=1,001.55..2,184,813.19 rows=85,623,850 width=36) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,001.55..1,328,574.69 rows=85,623,850 width=140) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,001.55..258,258.44 rows=131,729 width=28) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Seq Scan on systeminformation si (cost=0.00..1.01 rows=1 width=0) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Gather (cost=1,001.55..256,940.14 rows=131,729 width=28) (actual rows= loops=)

  • Workers Planned: 2
17. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1.55..242,767.24 rows=54,887 width=28) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.99..124,120.77 rows=54,887 width=28) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Parallel Index Scan using ixte2entrydate on timeentry te (cost=0.43..5,474.24 rows=54,887 width=28) (actual rows= loops=)

  • Index Cond: ((entrydate >= '2020-07-19'::date) AND (entrydate <= '2020-07-25'::date))
  • Filter: ((timeallocationtype <> 2) OR (timeallocationtype IS NULL))
20. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata tembillingrate (cost=0.56..2.15 rows=1 width=16) (actual rows= loops=)

  • Index Cond: ((timeentryid = te.id) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:BILLING-RATE'::text))
21. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata temdbreaktype (cost=0.56..2.15 rows=1 width=16) (actual rows= loops=)

  • Index Cond: ((timeentryid = te.id) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:BREAK-TYPE'::text))
22. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..19.75 rows=650 width=0) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Seq Scan on projectsysteminformation psi (cost=0.00..16.50 rows=650 width=0) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 2 (cost=0.83..1,915.17 rows=64 width=36) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.83..1,914.53 rows=64 width=140) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Index Scan using uix2toe_timeoffidentrydate on timeoffentries toe (cost=0.42..1,761.69 rows=64 width=12) (actual rows= loops=)

  • Index Cond: ((entrydate >= '2020-07-19'::date) AND (entrydate <= '2020-07-25'::date))
27. 0.000 0.000 ↓ 0.0

Index Scan using timeoffs_pkey on timeoffs toff (cost=0.42..2.39 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (id = toe.timeoffid)
28. 0.000 0.000 ↓ 0.0

Hash (cost=325,650.58..325,650.58 rows=1 width=79) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata6 (cost=0.56..325,650.58 rows=1 width=79) (actual rows= loops=)

  • Index Cond: (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:BREAK-TYPE'::text)
30. 0.000 0.000 ↓ 0.0

Materialize (cost=407,975.10..408,931.10 rows=191,200 width=79) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Sort (cost=407,975.10..408,453.10 rows=191,200 width=79) (actual rows= loops=)

  • Sort Key: timeentrymetadata1.timeentryid
32. 0.000 0.000 ↓ 0.0

Gather (cost=1,000.00..386,346.34 rows=191,200 width=79) (actual rows= loops=)

  • Workers Planned: 2
33. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on timeentrymetadata timeentrymetadata1 (cost=0.00..366,226.34 rows=79,667 width=79) (actual rows= loops=)

  • Filter: (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text)
34. 0.000 0.000 ↓ 0.0

Hash (cost=26,771.72..26,771.72 rows=474,572 width=4) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Seq Scan on project project2 (cost=0.00..26,771.72 rows=474,572 width=4) (actual rows= loops=)

36. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.84..2.43 rows=4 width=28) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet ts (cost=0.42..0.60 rows=4 width=28) (actual rows= loops=)

  • Index Cond: (("*SELECT* 1".userid = userid) AND ("*SELECT* 1".entrydate >= startdate) AND ("*SELECT* 1".entrydate <= enddate))
38. 0.000 0.000 ↓ 0.0

Index Only Scan using dm_timesheetlist_facts_pkey on dm_timesheetlist_facts tslist (cost=0.42..0.46 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (timesheetid = ts.id)
39.          

SubPlan (for Nested Loop Left Join)

40. 0.000 0.000 ↓ 0.0

Materialize (cost=2.00..2,815,012.09 rows=191,254 width=16) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=2.00..2,813,121.82 rows=191,254 width=16) (actual rows= loops=)

  • Filter: ((hashed SubPlan 1) OR (timesheet8.userid = 2,631) OR (alternatives: SubPlan 2 or hashed SubPlan 3) OR (alternatives: SubPlan 4 or hashed SubPlan 5) OR (alternatives: SubPlan 6 or hashed SubPlan 7))
42. 0.000 0.000 ↓ 0.0

Seq Scan on timesheet timesheet8 (cost=0.00..4,477.02 rows=204,002 width=28) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

Index Only Scan using ix4ucc_userdepartmentgroupstartend on userdepartmentgroup userdepartmentgroup9 (cost=0.28..0.31 rows=1 width=28) (actual rows= loops=)

  • Index Cond: ((userid = timesheet8.userid) AND (startdate <= timesheet8.enddate) AND (enddate >= timesheet8.startdate))
44.          

SubPlan (for Nested Loop Left Join)

45. 0.000 0.000 ↓ 0.0

Index Only Scan using departmentgroupflathierarchy_pkey on departmentgroupflathierarchy departmentgroupflathierarchy10 (cost=0.28..1.66 rows=22 width=16) (actual rows= loops=)

  • Index Cond: (parentid = '56853e42-273e-4bb8-868c-84bf3be5817b'::uuid)
46. 0.000 0.000 ↓ 0.0

Index Scan using ix3uh_usersuperstart on userhierarchy userhierarchy11 (cost=0.28..2.31 rows=1 width=0) (actual rows= loops=)

  • Index Cond: ((userid = timesheet8.userid) AND (supervisorid = 2,631) AND (startdate <= '2020-07-24'::date))
  • Filter: (enddate >= '2020-07-24'::date)
47. 0.000 0.000 ↓ 0.0

Index Scan using ixuhsupervisorid on userhierarchy userhierarchy11_1 (cost=0.28..12.45 rows=9 width=4) (actual rows= loops=)

  • Index Cond: (supervisorid = 2,631)
  • Filter: ((startdate <= '2020-07-24'::date) AND (enddate >= '2020-07-24'::date))
48. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..5.63 rows=1 width=0) (actual rows= loops=)

  • Join Filter: (tsapprovalrequest12.nodeid = timesheetapprovalnodes13.id)
49. 0.000 0.000 ↓ 0.0

Index Only Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest12 (cost=0.28..2.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
50. 0.000 0.000 ↓ 0.0

Index Scan using ixtantimesheetid on timesheetapprovalnodes timesheetapprovalnodes13 (cost=0.28..3.31 rows=2 width=16) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet8.id)
51. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..4.59 rows=1 width=16) (actual rows= loops=)

52. 0.000 0.000 ↓ 0.0

Index Only Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest12_1 (cost=0.28..2.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
53. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes13_1 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest12_1.nodeid)
54. 0.000 0.000 ↓ 0.0

Index Scan using ixtah2timesheetid on timesheetapprovalhistory timesheetapprovalhistory14 (cost=0.42..5.50 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet8.id)
  • Filter: (userid = 2,631)
55. 0.000 0.000 ↓ 0.0

Index Scan using ixtahuserid on timesheetapprovalhistory timesheetapprovalhistory14_1 (cost=0.42..491.83 rows=489 width=16) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
56. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=640.83..10,482,491.68 rows=130,664 width=4) (actual rows= loops=)

  • Filter: (((userhierarchy16.supervisorid = 2,631) AND ((userhierarchy16.startdate IS NULL) OR (userhierarchy16.startdate <= '2020-07-24'::date)) AND ((userhierarchy16.enddate IS NULL) OR (userhierarchy16.enddate >= '2020-07-24'::date))) OR (timeoffs15.userid = 2,631) OR (alternatives: SubPlan 9 or hashed SubPlan 10) OR (alternatives: SubPlan 11 or hashed SubPlan 12) OR (hashed SubPlan 13) OR (SubPlan 14) OR (SubPlan 15) OR (SubPlan 16) OR (SubPlan 17))
57. 0.000 0.000 ↓ 0.0

Seq Scan on timeoffs timeoffs15 (cost=0.00..3,698.65 rows=110,265 width=16) (actual rows= loops=)

58. 0.000 0.000 ↓ 0.0

Index Scan using ix3uh_usersuperstart on userhierarchy userhierarchy16 (cost=0.28..0.30 rows=1 width=24) (actual rows= loops=)

  • Index Cond: (userid = timeoffs15.userid)
59.          

SubPlan (for Nested Loop Left Join)

60. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.55..4.60 rows=1 width=0) (actual rows= loops=)

  • Join Filter: (timeoffapprovalnodes17.id = timeoffapprovalrequest18.nodeid)
61. 0.000 0.000 ↓ 0.0

Index Scan using ixtoantimeoffid on timeoffapprovalnodes timeoffapprovalnodes17 (cost=0.28..2.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (timeoffid = timeoffs15.id)
62. 0.000 0.000 ↓ 0.0

Index Only Scan using uix2toaraidnid on timeoffapprovalrequest timeoffapprovalrequest18 (cost=0.28..2.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (approverid = 2,631)
63. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.55..4.59 rows=1 width=4) (actual rows= loops=)

64. 0.000 0.000 ↓ 0.0

Index Only Scan using uix2toaraidnid on timeoffapprovalrequest timeoffapprovalrequest18_1 (cost=0.28..2.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (approverid = 2,631)
65. 0.000 0.000 ↓ 0.0

Index Scan using timeoffapprovalnodes_pkey on timeoffapprovalnodes timeoffapprovalnodes17_1 (cost=0.28..2.29 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (id = timeoffapprovalrequest18_1.nodeid)
66. 0.000 0.000 ↓ 0.0

Index Scan using ixtoahtimeoffid on timeoffapprovalhistory timeoffapprovalhistory19 (cost=0.42..2.49 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (timeoffid = timeoffs15.id)
  • Filter: ((userid = 2,631) AND (action = ANY ('{2,3,4}'::integer[])))
67. 0.000 0.000 ↓ 0.0

Index Scan using ixtoahuserid on timeoffapprovalhistory timeoffapprovalhistory19_1 (cost=0.42..161.27 rows=80 width=4) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
  • Filter: (action = ANY ('{2,3,4}'::integer[]))
68. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.64..638.61 rows=777 width=4) (actual rows= loops=)

69. 0.000 0.000 ↓ 0.0

Hash Join (cost=2.22..168.14 rows=380 width=12) (actual rows= loops=)

  • Hash Cond: (userdepartmentgroup21.departmentgroupid = departmentgroupflathierarchy22.childid)
70. 0.000 0.000 ↓ 0.0

Index Only Scan using ix4ucc_userdepartmentgroupstartend on userdepartmentgroup userdepartmentgroup21 (cost=0.28..149.82 rows=6,169 width=28) (actual rows= loops=)

71. 0.000 0.000 ↓ 0.0

Hash (cost=1.66..1.66 rows=22 width=16) (actual rows= loops=)

72. 0.000 0.000 ↓ 0.0

Index Only Scan using departmentgroupflathierarchy_pkey on departmentgroupflathierarchy departmentgroupflathierarchy22 (cost=0.28..1.66 rows=22 width=16) (actual rows= loops=)

  • Index Cond: (parentid = '56853e42-273e-4bb8-868c-84bf3be5817b'::uuid)
73. 0.000 0.000 ↓ 0.0

Index Scan using ixto4userid on timeoffs timeoffs20 (cost=0.42..1.22 rows=2 width=16) (actual rows= loops=)

  • Index Cond: ((userid = userdepartmentgroup21.userid) AND (userdepartmentgroup21.enddate >= startdate) AND (userdepartmentgroup21.startdate <= enddate))
74. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.55..21.91 rows=3 width=32) (actual rows= loops=)

75. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.27..17.70 rows=12 width=84) (actual rows= loops=)

76. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.98..6.23 rows=1 width=4) (actual rows= loops=)

77. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..4.59 rows=1 width=20) (actual rows= loops=)

78. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest26 (cost=0.28..2.29 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
79. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes25 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest26.nodeid)
80. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet24 (cost=0.42..1.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes25.timesheetid)
  • Filter: ((timeoffs15.startdate <= enddate) AND (timeoffs15.enddate >= startdate) AND (userid = timeoffs15.userid))
81. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvtsapprovalrequestid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue23 (cost=0.29..11.34 rows=12 width=88) (actual rows= loops=)

  • Index Cond: (tsapprovalrequestid = tsapprovalrequest26.id)
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
82. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue27 (cost=0.29..0.35 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue23.parentid)
  • Filter: (parentid IS NULL)
83. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.94..50.92 rows=1 width=32) (actual rows= loops=)

84. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.38..50.10 rows=1 width=16) (actual rows= loops=)

85. 0.000 0.000 ↓ 0.0

Nested Loop (cost=13.81..47.99 rows=1 width=16) (actual rows= loops=)

86. 0.000 0.000 ↓ 0.0

Nested Loop (cost=13.25..47.20 rows=1 width=16) (actual rows= loops=)

87. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.69..45.22 rows=1 width=16) (actual rows= loops=)

88. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.13..41.97 rows=1 width=16) (actual rows= loops=)

89. 0.000 0.000 ↓ 0.0

Nested Loop (cost=11.56..39.39 rows=1 width=16) (actual rows= loops=)

90. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.84..27.64 rows=1 width=16) (actual rows= loops=)

91. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet29 (cost=0.42..5.58 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeoffs15.userid) AND (timeoffs15.enddate >= startdate) AND (timeoffs15.startdate <= enddate))
92. 0.000 0.000 ↓ 0.0

Index Scan using ixtah2timesheetid on timesheetapprovalhistory timesheetapprovalhistory30 (cost=0.42..5.50 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet29.id)
  • Filter: (userid = 2,631)
93. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue31 (cost=10.72..11.74 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory30.id) AND (upper(uri) = 'URN:REPLICON-TENANT:EC59310F04EB4B13A07D9DD6E7E07B8C:USER:2,631'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
94. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.72..10.72 rows=1 width=0) (actual rows= loops=)

95. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..2.03 rows=62 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory30.id)
96. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.39 rows=360 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:EC59310F04EB4B13A07D9DD6E7E07B8C:USER:2,631'::text)
97. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue32 (cost=0.56..2.59 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue31.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
98. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue33 (cost=0.56..3.23 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue32.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
99. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue34 (cost=0.56..1.91 rows=8 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue33.id)
100. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue35 (cost=0.56..0.78 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue34.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
101. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue36 (cost=0.56..2.03 rows=8 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue35.id)
102. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue28 (cost=0.56..0.74 rows=8 width=89) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue36.id)
103. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.55..18.44 rows=1 width=32) (actual rows= loops=)

104. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.27..17.59 rows=1 width=84) (actual rows= loops=)

105. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.98..6.23 rows=1 width=4) (actual rows= loops=)

106. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..4.59 rows=1 width=20) (actual rows= loops=)

107. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest40 (cost=0.28..2.29 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (userid = 2,631)
108. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes39 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest40.nodeid)
109. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet38 (cost=0.42..1.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes39.timesheetid)
  • Filter: ((timeoffs15.startdate <= enddate) AND (timeoffs15.enddate >= startdate) AND (userid = timeoffs15.userid))
110. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvtsapprovalrequestid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue37 (cost=0.29..11.34 rows=1 width=88) (actual rows= loops=)

  • Index Cond: (tsapprovalrequestid = tsapprovalrequest40.id)
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-ACCESSIBLE-OBJECTS'::text)
111. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue41 (cost=0.29..0.85 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue37.parentid)
  • Filter: (parentid IS NULL)
112. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.94..50.91 rows=1 width=32) (actual rows= loops=)

113. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.38..50.09 rows=1 width=16) (actual rows= loops=)

114. 0.000 0.000 ↓ 0.0

Nested Loop (cost=13.81..47.99 rows=1 width=16) (actual rows= loops=)

115. 0.000 0.000 ↓ 0.0

Nested Loop (cost=13.25..47.20 rows=1 width=16) (actual rows= loops=)

116. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.69..45.22 rows=1 width=16) (actual rows= loops=)

117. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.13..41.97 rows=1 width=16) (actual rows= loops=)

118. 0.000 0.000 ↓ 0.0

Nested Loop (cost=11.56..39.39 rows=1 width=16) (actual rows= loops=)

119. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.84..27.64 rows=1 width=16) (actual rows= loops=)

120. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet43 (cost=0.42..5.58 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeoffs15.userid) AND (timeoffs15.enddate >= startdate) AND (timeoffs15.startdate <= enddate))
121. 0.000 0.000 ↓ 0.0

Index Scan using ixtah2timesheetid on timesheetapprovalhistory timesheetapprovalhistory44 (cost=0.42..5.50 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet43.id)
  • Filter: (userid = 2,631)
122. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue45 (cost=10.72..11.74 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory44.id) AND (upper(uri) = 'URN:REPLICON-TENANT:EC59310F04EB4B13A07D9DD6E7E07B8C:USER:2,631'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
123. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.72..10.72 rows=1 width=0) (actual rows= loops=)

124. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..2.03 rows=62 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory44.id)
125. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.39 rows=360 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:EC59310F04EB4B13A07D9DD6E7E07B8C:USER:2,631'::text)
126. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue46 (cost=0.56..2.59 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue45.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
127. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue47 (cost=0.56..3.23 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue46.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
128. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue48 (cost=0.56..1.91 rows=8 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue47.id)
129. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue49 (cost=0.56..0.78 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue48.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-ACCESSIBLE-OBJECTS'::text)
130. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue50 (cost=0.56..2.02 rows=8 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue49.id)
131. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue42 (cost=0.56..0.74 rows=8 width=89) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue50.id)