explain.depesz.com

PostgreSQL's explain analyze made readable

Result: hn8j

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

Nested Loop (cost=1.15..100,672,853.59 rows=7,678 width=91) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=0.86..100,670,335.67 rows=7,678 width=68) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..736.10 rows=11,514 width=64) (actual rows= loops=)

  • Join Filter: (userinfo0.id <> systeminformation2.rootuserid)
4. 0.000 0.000 ↓ 0.0

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

5. 0.000 0.000 ↓ 0.0

Seq Scan on userinfo userinfo0 (cost=0.00..591.15 rows=11,515 width=64) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..25,973.12 rows=392 width=4) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Index Scan using ixata2userid on dm_attendancetimeallocation_facts ttendancetimeallocation_facts3 (cost=0.43..13.81 rows=418 width=20) (actual rows= loops=)

  • Index Cond: (userid = userinfo0.id)
8. 0.000 0.000 ↓ 0.0

Index Scan using dm_attendancetimeallocation_facts_pkey on dm_attendancetimeallocation_facts ttendancetimeallocation_facts4 (cost=0.43..62.10 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = ttendancetimeallocation_facts3.id)
  • Filter: ((userid = 11,795) OR (SubPlan 1) OR (SubPlan 2) OR (SubPlan 3) OR (SubPlan 4))
9.          

SubPlan (for Index Scan)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.71..9.83 rows=1 width=32) (actual rows= loops=)

  • Join Filter: (tsapprovalrequestkeyvalue5.parentid = tsapprovalrequestkeyvalue9.id)
11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..7.65 rows=1 width=48) (actual rows= loops=)

  • Join Filter: (tsapprovalrequest8.id = tsapprovalrequestkeyvalue5.tsapprovalrequestid)
12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.42..5.48 rows=1 width=4) (actual rows= loops=)

  • Join Filter: (timesheetapprovalnodes7.id = tsapprovalrequest8.nodeid)
13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.42..3.46 rows=1 width=16) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Only Scan using timesheet_pkey on timesheet timesheet6 (cost=0.42..1.44 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = ttendancetimeallocation_facts4.timesheetid)
15. 0.000 0.000 ↓ 0.0

Seq Scan on timesheetapprovalnodes timesheetapprovalnodes7 (cost=0.00..2.01 rows=1 width=32) (actual rows= loops=)

  • Filter: (timesheetid = ttendancetimeallocation_facts4.timesheetid)
16. 0.000 0.000 ↓ 0.0

Seq Scan on tsapprovalrequest tsapprovalrequest8 (cost=0.00..2.00 rows=1 width=20) (actual rows= loops=)

  • Filter: (userid = 11,795)
17. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue5 (cost=0.14..2.16 rows=1 width=52) (actual rows= loops=)

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

Index Scan using ixtsarkvparentid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue9 (cost=0.14..2.16 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (parentid IS NULL)
19. 0.000 0.000 ↓ 0.0

Nested Loop (cost=18.36..32.70 rows=1 width=32) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.80..32.02 rows=1 width=16) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.23..27.38 rows=1 width=16) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.67..26.70 rows=1 width=16) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.11..25.29 rows=1 width=16) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.55..20.65 rows=1 width=16) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.98..18.06 rows=1 width=16) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.32..6.36 rows=1 width=16) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Index Only Scan using timesheet_pkey on timesheet timesheet11 (cost=0.42..1.44 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = ttendancetimeallocation_facts4.timesheetid)
28. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory12 (cost=3.89..4.91 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = ttendancetimeallocation_facts4.timesheetid) AND (userid = 11,795))
29. 0.000 0.000 ↓ 0.0

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

30. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.48 rows=7 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = ttendancetimeallocation_facts4.timesheetid)
31. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..2.16 rows=98 width=0) (actual rows= loops=)

  • Index Cond: (userid = 11,795)
32. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue13 (cost=10.67..11.69 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory12.id) AND (upper(uri) = 'URN:REPLICON-TENANT:1B8A55AA5F704DEA918923FE2DAF8CDA:USER:11,795'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
33. 0.000 0.000 ↓ 0.0

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

34. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory12.id)
35. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:1B8A55AA5F704DEA918923FE2DAF8CDA:USER:11,795'::text)
36. 0.000 0.000 ↓ 0.0

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

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

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

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

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue16 (cost=0.56..1.38 rows=3 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue15.id)
39. 0.000 0.000 ↓ 0.0

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

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

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue18 (cost=0.56..4.61 rows=3 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue17.id)
41. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue10 (cost=0.56..0.65 rows=3 width=93) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue18.id)
42. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.71..9.83 rows=1 width=32) (actual rows= loops=)

  • Join Filter: (tsapprovalrequestkeyvalue19.parentid = tsapprovalrequestkeyvalue23.id)
43. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..7.65 rows=1 width=48) (actual rows= loops=)

  • Join Filter: (tsapprovalrequest22.id = tsapprovalrequestkeyvalue19.tsapprovalrequestid)
44. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.42..5.48 rows=1 width=4) (actual rows= loops=)

  • Join Filter: (timesheetapprovalnodes21.id = tsapprovalrequest22.nodeid)
45. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.42..3.46 rows=1 width=16) (actual rows= loops=)

46. 0.000 0.000 ↓ 0.0

Index Only Scan using timesheet_pkey on timesheet timesheet20 (cost=0.42..1.44 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = ttendancetimeallocation_facts4.timesheetid)
47. 0.000 0.000 ↓ 0.0

Seq Scan on timesheetapprovalnodes timesheetapprovalnodes21 (cost=0.00..2.01 rows=1 width=32) (actual rows= loops=)

  • Filter: (timesheetid = ttendancetimeallocation_facts4.timesheetid)
48. 0.000 0.000 ↓ 0.0

Seq Scan on tsapprovalrequest tsapprovalrequest22 (cost=0.00..2.00 rows=1 width=20) (actual rows= loops=)

  • Filter: (userid = 11,795)
49. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue19 (cost=0.14..2.16 rows=1 width=52) (actual rows= loops=)

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

Index Scan using ixtsarkvparentid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue23 (cost=0.14..2.16 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (parentid IS NULL)
51. 0.000 0.000 ↓ 0.0

Nested Loop (cost=18.36..32.70 rows=1 width=32) (actual rows= loops=)

52. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.80..32.02 rows=1 width=16) (actual rows= loops=)

53. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.23..27.38 rows=1 width=16) (actual rows= loops=)

54. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.67..26.70 rows=1 width=16) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.11..25.29 rows=1 width=16) (actual rows= loops=)

56. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.55..20.65 rows=1 width=16) (actual rows= loops=)

57. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.98..18.06 rows=1 width=16) (actual rows= loops=)

58. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.32..6.36 rows=1 width=16) (actual rows= loops=)

59. 0.000 0.000 ↓ 0.0

Index Only Scan using timesheet_pkey on timesheet timesheet25 (cost=0.42..1.44 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = ttendancetimeallocation_facts4.timesheetid)
60. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory26 (cost=3.89..4.91 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = ttendancetimeallocation_facts4.timesheetid) AND (userid = 11,795))
61. 0.000 0.000 ↓ 0.0

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

62. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.48 rows=7 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = ttendancetimeallocation_facts4.timesheetid)
63. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..2.16 rows=98 width=0) (actual rows= loops=)

  • Index Cond: (userid = 11,795)
64. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue27 (cost=10.67..11.69 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory26.id) AND (upper(uri) = 'URN:REPLICON-TENANT:1B8A55AA5F704DEA918923FE2DAF8CDA:USER:11,795'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
65. 0.000 0.000 ↓ 0.0

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

66. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory26.id)
67. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:1B8A55AA5F704DEA918923FE2DAF8CDA:USER:11,795'::text)
68. 0.000 0.000 ↓ 0.0

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

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

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

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

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue30 (cost=0.56..1.38 rows=3 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue29.id)
71. 0.000 0.000 ↓ 0.0

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

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

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue32 (cost=0.56..4.61 rows=3 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue31.id)
73. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue24 (cost=0.56..0.65 rows=3 width=93) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue32.id)
74. 0.000 0.000 ↓ 0.0

Index Scan using login_pkey on login login1 (cost=0.29..0.33 rows=1 width=31) (actual rows= loops=)

  • Index Cond: (userid = userinfo0.id)