explain.depesz.com

PostgreSQL's explain analyze made readable

Result: vGuP

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

Gather (cost=64,131.00..193,416.63 rows=486,245 width=6,559) (actual rows= loops=)

  • Workers Planned: 2
2. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=63,131.00..143,792.13 rows=202,602 width=6,559) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue24.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:employee-type-group:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue24.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:employee-type-group:(.*)$'::text))::uuid ELSE NULL::uuid END = employeetypegroup17.id)
3. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=63,129.95..142,849.82 rows=202,602 width=2,226) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue24.projectid)
4. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=63,128.76..142,088.86 rows=202,602 width=2,194) (actual rows= loops=)

  • Hash Cond: (project0.id = projectscriptablecontract25.projectid)
5. 0.000 0.000 ↓ 0.0

Hash Semi Join (cost=63,085.74..109,370.97 rows=202,602 width=2,156) (actual rows= loops=)

  • Hash Cond: (project0.id = project27.id)
6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=375.80..43,875.26 rows=202,602 width=2,156) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue23.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:department-group:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue23.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:department-group:(.*)$'::text))::uuid ELSE NULL::uuid END = departmentgroup16.id)
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=363.13..43,194.19 rows=202,602 width=2,158) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue23.projectid)
8. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=361.94..42,433.23 rows=202,602 width=2,126) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue22.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:service-center:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue22.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:service-center:(.*)$'::text))::uuid ELSE NULL::uuid END = servicecenter15.id)
9. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=360.76..41,490.78 rows=202,602 width=2,125) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue22.projectid)
10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=359.57..40,729.82 rows=202,602 width=2,093) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue21.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:location:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue21.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:location:(.*)$'::text))::uuid ELSE NULL::uuid END = location14.id)
11. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=357.42..40,002.67 rows=202,602 width=1,891) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue21.projectid)
12. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=356.23..39,241.71 rows=202,602 width=1,859) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue20.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:division:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue20.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:division:(.*)$'::text))::uuid ELSE NULL::uuid END = division13.id)
13. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=355.11..38,299.33 rows=202,602 width=1,657) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue20.projectid)
14. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=353.92..37,538.37 rows=202,602 width=1,625) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(projectkeyvalue19.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:cost-center:(.*)$'::text) ~* '^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$'::text) THEN ("substring"(projectkeyvalue19.uri, '^urn:replicon-tenant:ec59310f04eb4b13a07d9dd6e7e07b8c:cost-center:(.*)$'::text))::uuid ELSE NULL::uuid END = costcenter12.id)
15. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=352.79..36,595.98 rows=202,602 width=1,625) (actual rows= loops=)

  • Hash Cond: (project0.id = projectkeyvalue19.projectid)
16. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=351.59..35,835.02 rows=202,602 width=1,593) (actual rows= loops=)

  • Hash Cond: (project0.projectstatuslabelid = projectstatuslabel11.id)
17. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=350.44..34,980.04 rows=202,602 width=1,600) (actual rows= loops=)

  • Hash Cond: (project0.budgetedcostcurrencyid = currencyinfo10.id)
18. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=349.41..34,447.19 rows=202,602 width=1,585) (actual rows= loops=)

  • Hash Cond: (project0.totalestimatedcontractcurrencyid = currencyinfo9.id)
19. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=348.39..31,660.39 rows=202,602 width=1,570) (actual rows= loops=)

  • Hash Cond: (project0.defaultbillingcurrencyid = currencyinfo8.id)
20. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=347.37..28,873.59 rows=202,602 width=1,555) (actual rows= loops=)

  • Hash Cond: (project0.billingratefrequencyid = billingratefrequency7.id)
21. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=346.30..27,589.37 rows=202,602 width=1,562) (actual rows= loops=)

  • Hash Cond: (project0.estimatedcostcurrencyid = currencyinfo6.id)
22. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=345.28..27,056.52 rows=202,602 width=1,547) (actual rows= loops=)

  • Hash Cond: (project0.estimatedexpensescurrencyid = currencyinfo5.id)
23. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=344.26..26,523.67 rows=202,602 width=1,532) (actual rows= loops=)

  • Hash Cond: (project0.fixedbidcurrencyid = currencyinfo4.id)
24. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=343.24..25,990.81 rows=202,602 width=1,517) (actual rows= loops=)

  • Hash Cond: (project0.programid = program3.id)
25. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=331.66..25,447.41 rows=202,602 width=1,001) (actual rows= loops=)

  • Hash Cond: (project0.projectleaderapproverid = userinfo2.id)
26. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=2.15..24,586.00 rows=202,602 width=987) (actual rows= loops=)

  • Hash Cond: (project0.clientid = clients1.id)
27. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on project project0 (cost=0.00..24,052.02 rows=202,602 width=353) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=2.14..2.14 rows=1 width=638) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Index Scan using clients_pkey on clients clients1 (cost=0.12..2.14 rows=1 width=638) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Hash (cost=253.67..253.67 rows=6,067 width=18) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Seq Scan on userinfo userinfo2 (cost=0.00..253.67 rows=6,067 width=18) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Hash (cost=10.70..10.70 rows=70 width=532) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Seq Scan on program program3 (cost=0.00..10.70 rows=70 width=532) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo4 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

36. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo5 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo6 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Hash (cost=1.03..1.03 rows=3 width=25) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Seq Scan on billingratefrequency billingratefrequency7 (cost=0.00..1.03 rows=3 width=25) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo8 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

44. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

45. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo9 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

46. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=19) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

Seq Scan on currencyinfo currencyinfo10 (cost=0.00..1.01 rows=1 width=19) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

Hash (cost=1.07..1.07 rows=7 width=25) (actual rows= loops=)

49. 0.000 0.000 ↓ 0.0

Seq Scan on projectstatuslabel projectstatuslabel11 (cost=0.00..1.07 rows=7 width=25) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

51. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue19 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:COST-CENTER'::text)
52. 0.000 0.000 ↓ 0.0

Hash (cost=1.06..1.06 rows=6 width=32) (actual rows= loops=)

53. 0.000 0.000 ↓ 0.0

Seq Scan on costcenter costcenter12 (cost=0.00..1.06 rows=6 width=32) (actual rows= loops=)

54. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue20 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:DIVISION'::text)
56. 0.000 0.000 ↓ 0.0

Hash (cost=1.05..1.05 rows=5 width=234) (actual rows= loops=)

57. 0.000 0.000 ↓ 0.0

Seq Scan on division division13 (cost=0.00..1.05 rows=5 width=234) (actual rows= loops=)

58. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

59. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue21 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:LOCATION'::text)
60. 0.000 0.000 ↓ 0.0

Hash (cost=1.51..1.51 rows=51 width=234) (actual rows= loops=)

61. 0.000 0.000 ↓ 0.0

Seq Scan on location location14 (cost=0.00..1.51 rows=51 width=234) (actual rows= loops=)

62. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

63. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue22 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:SERVICE-CENTER'::text)
64. 0.000 0.000 ↓ 0.0

Hash (cost=1.08..1.08 rows=8 width=33) (actual rows= loops=)

65. 0.000 0.000 ↓ 0.0

Seq Scan on servicecenter servicecenter15 (cost=0.00..1.08 rows=8 width=33) (actual rows= loops=)

66. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

67. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue23 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:DEPARTMENT-GROUP'::text)
68. 0.000 0.000 ↓ 0.0

Hash (cost=8.41..8.41 rows=341 width=30) (actual rows= loops=)

69. 0.000 0.000 ↓ 0.0

Seq Scan on departmentgroup departmentgroup16 (cost=0.00..8.41 rows=341 width=30) (actual rows= loops=)

70. 0.000 0.000 ↓ 0.0

Hash (cost=56,631.87..56,631.87 rows=486,245 width=8) (actual rows= loops=)

71. 0.000 0.000 ↓ 0.0

Merge Join (cost=0.84..56,631.87 rows=486,245 width=8) (actual rows= loops=)

  • Merge Cond: (project26.id = project27.id)
72. 0.000 0.000 ↓ 0.0

Index Only Scan using project_pkey on project project26 (cost=0.42..24,669.10 rows=486,245 width=4) (actual rows= loops=)

73. 0.000 0.000 ↓ 0.0

Index Only Scan using project_pkey on project project27 (cost=0.42..24,669.10 rows=486,245 width=4) (actual rows= loops=)

74. 0.000 0.000 ↓ 0.0

Hash (cost=27.15..27.15 rows=1,270 width=42) (actual rows= loops=)

75. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1.04..27.15 rows=1,270 width=42) (actual rows= loops=)

  • Hash Cond: (projectscriptablecontract25.scriptablecontractid = scriptablecontract18.id)
76. 0.000 0.000 ↓ 0.0

Seq Scan on projectscriptablecontract projectscriptablecontract25 (cost=0.00..22.70 rows=1,270 width=20) (actual rows= loops=)

77. 0.000 0.000 ↓ 0.0

Hash (cost=1.02..1.02 rows=2 width=38) (actual rows= loops=)

78. 0.000 0.000 ↓ 0.0

Seq Scan on scriptablecontract scriptablecontract18 (cost=0.00..1.02 rows=2 width=38) (actual rows= loops=)

79. 0.000 0.000 ↓ 0.0

Hash (cost=1.18..1.18 rows=1 width=36) (actual rows= loops=)

80. 0.000 0.000 ↓ 0.0

Seq Scan on projectkeyvalue projectkeyvalue24 (cost=0.00..1.18 rows=1 width=36) (actual rows= loops=)

  • Filter: (upper(keyuri) = 'URN:REPLICON:PROJECT-KEY-VALUE-KEY:EMPLOYEE-TYPE-GROUP'::text)
81. 0.000 0.000 ↓ 0.0

Hash (cost=1.02..1.02 rows=2 width=24) (actual rows= loops=)

82. 0.000 0.000 ↓ 0.0

Seq Scan on employeetypegroup employeetypegroup17 (cost=0.00..1.02 rows=2 width=24) (actual rows= loops=)