explain.depesz.com

PostgreSQL's explain analyze made readable

Result: SyBc

Settings
# exclusive inclusive rows x rows loops node
1. 0.002 80.139 ↓ 0.0 0 1

Nested Loop (cost=1,006.91..2,168.35 rows=2 width=526) (actual time=80.139..80.139 rows=0 loops=1)

  • Join Filter: (du."DefinitionHash" = "DefinitionsTreeUploads"."DescendantHash")
2. 0.000 80.137 ↓ 0.0 0 1

Nested Loop (cost=1,006.91..2,137.05 rows=1 width=574) (actual time=80.137..80.137 rows=0 loops=1)

3. 84.456 84.514 ↓ 0.0 0 1

Gather (cost=1,006.75..2,136.87 rows=1 width=536) (actual time=80.136..84.514 rows=0 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
4. 0.001 0.058 ↓ 0.0 0 3 / 3

Nested Loop (cost=6.75..1,136.77 rows=1 width=536) (actual time=0.058..0.058 rows=0 loops=3)

  • Join Filter: (dba."DataHash" = du."DataHash")
5. 0.000 0.057 ↓ 0.0 0 3 / 3

Nested Loop (cost=6.75..1,126.61 rows=7 width=532) (actual time=0.057..0.057 rows=0 loops=3)

  • Join Filter: (dt."DataTypeHash" = dba."DataTypeHash")
6. 0.003 0.057 ↓ 0.0 0 3 / 3

Hash Join (cost=6.34..410.78 rows=856 width=174) (actual time=0.056..0.057 rows=0 loops=3)

  • Hash Cond: (d."DataTypeHash" = dt."DataTypeHash")
7. 0.001 0.054 ↓ 0.0 0 3 / 3

Nested Loop (cost=0.41..401.32 rows=1,317 width=138) (actual time=0.054..0.054 rows=0 loops=3)

8. 0.002 0.053 ↓ 0.0 0 3 / 3

Parallel Append (cost=0.41..109.63 rows=12 width=32) (actual time=0.053..0.053 rows=0 loops=3)

9. 0.031 0.038 ↓ 0.0 0 1 / 3

Parallel Bitmap Heap Scan on "DefinitionsTree_ProjectID_9" (cost=8.91..42.20 rows=5 width=32) (actual time=0.113..0.114 rows=0 loops=1)

  • Recheck Cond: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
10. 0.007 0.007 ↓ 0.0 0 1 / 3

Bitmap Index Scan on "PK_DefinitionsTree_ProjectID_9_AncestorHashDescendantHash" (cost=0.00..8.90 rows=9 width=0) (actual time=0.019..0.020 rows=0 loops=1)

  • Index Cond: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
11. 0.003 0.003 ↓ 0.0 0 1 / 3

Parallel Index Only Scan using "PK_DefinitionsTree_ProjectID_2_AncestorHashDescendantHash" on "DefinitionsTree_ProjectID_2" (cost=0.41..27.75 rows=4 width=32) (actual time=0.010..0.010 rows=0 loops=1)

  • Index Cond: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
  • Heap Fetches: 0
12. 0.003 0.003 ↓ 0.0 0 1 / 3

Parallel Index Only Scan using "PK_DefinitionsTree_ProjectID_7_AncestorHashDescendantHash" on "DefinitionsTree_ProjectID_7" (cost=0.28..25.06 rows=4 width=32) (actual time=0.008..0.008 rows=0 loops=1)

  • Index Cond: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
  • Heap Fetches: 0
13. 0.006 0.006 ↓ 0.0 0 1 / 3

Parallel Index Only Scan using "PK_DefinitionsTree_ProjectID_8_AncestorHashDescendantHash" on "DefinitionsTree_ProjectID_8" (cost=0.28..14.56 rows=1 width=32) (actual time=0.017..0.018 rows=0 loops=1)

  • Index Cond: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
  • Heap Fetches: 0
14. 0.001 0.001 ↓ 0.0 0 1 / 3

Parallel Seq Scan on "DefinitionsTree" (cost=0.00..0.00 rows=1 width=32) (actual time=0.002..0.002 rows=0 loops=1)

  • Filter: ("AncestorHash" = ANY ('{0060b4d7-e7c8-08ec-1e02-c5507fd9df60,006cd798-f70b-1728-bd1d-fc9f3b97bc74}'::uuid[]))
15. 0.000 0.000 ↓ 0.0 0 / 3

Append (cost=0.00..24.26 rows=5 width=106) (never executed)

16. 0.000 0.000 ↓ 0.0 0 / 3

Seq Scan on "Definitions" d (cost=0.00..0.00 rows=1 width=109) (never executed)

  • Filter: ("DefinitionsTree_ProjectID_9"."DescendantHash" = "DefinitionHash")
17. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_Definitions_ProjectID_2_DefinitionHashDataHash" on "Definitions_ProjectID_2" d_1 (cost=0.29..7.82 rows=1 width=113) (never executed)

  • Index Cond: ("DefinitionHash" = "DefinitionsTree_ProjectID_9"."DescendantHash")
18. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_Definitions_ProjectID_7_DefinitionHashDataHash" on "Definitions_ProjectID_7" d_2 (cost=0.28..5.57 rows=1 width=98) (never executed)

  • Index Cond: ("DefinitionHash" = "DefinitionsTree_ProjectID_9"."DescendantHash")
19. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_Definitions_ProjectID_8_DefinitionHashDataHash" on "Definitions_ProjectID_8" d_3 (cost=0.28..3.01 rows=1 width=82) (never executed)

  • Index Cond: ("DefinitionHash" = "DefinitionsTree_ProjectID_9"."DescendantHash")
20. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_Definitions_ProjectID_9_DefinitionHashDataHash" on "Definitions_ProjectID_9" d_4 (cost=0.29..7.82 rows=1 width=103) (never executed)

  • Index Cond: ("DefinitionHash" = "DefinitionsTree_ProjectID_9"."DescendantHash")
21. 0.000 0.000 ↓ 0.0 0 / 3

Hash (cost=4.30..4.30 rows=130 width=36) (never executed)

22. 0.000 0.000 ↓ 0.0 0 / 3

Seq Scan on "DataTypes" dt (cost=0.00..4.30 rows=130 width=36) (never executed)

23. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_DataBytes_DataHashDataTypeHash" on "DataBytes" dba (cost=0.41..0.82 rows=1 width=390) (never executed)

  • Index Cond: (("DataHash" = d."DataHash") AND ("DataTypeHash" = d."DataTypeHash"))
24. 0.000 0.000 ↓ 0.0 0 / 3

Append (cost=0.00..1.39 rows=5 width=36) (never executed)

25. 0.000 0.000 ↓ 0.0 0 / 3

Seq Scan on "DefinitionsUploads" du (cost=0.00..0.00 rows=1 width=36) (never executed)

  • Filter: (("UploadID" = 1) AND (d."DataHash" = "DataHash") AND (d."DefinitionHash" = "DefinitionHash"))
26. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_DefinitionsUploads_ProjectID_2_DefinitionHashUploadID" on "DefinitionsUploads_ProjectID_2" du_1 (cost=0.29..0.36 rows=1 width=36) (never executed)

  • Index Cond: (("DefinitionHash" = d."DefinitionHash") AND ("UploadID" = 1))
  • Filter: (d."DataHash" = "DataHash")
27. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_DefinitionsUploads_ProjectID_7_DefinitionHashUploadID" on "DefinitionsUploads_ProjectID_7" du_2 (cost=0.29..0.36 rows=1 width=36) (never executed)

  • Index Cond: (("DefinitionHash" = d."DefinitionHash") AND ("UploadID" = 1))
  • Filter: (d."DataHash" = "DataHash")
28. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_DefinitionsUploads_ProjectID_8_DefinitionHashUploadID" on "DefinitionsUploads_ProjectID_8" du_3 (cost=0.28..0.30 rows=1 width=36) (never executed)

  • Index Cond: (("DefinitionHash" = d."DefinitionHash") AND ("UploadID" = 1))
  • Filter: (d."DataHash" = "DataHash")
29. 0.000 0.000 ↓ 0.0 0 / 3

Index Scan using "PK_DefinitionsUploads_ProjectID_9_DefinitionHashUploadID" on "DefinitionsUploads_ProjectID_9" du_4 (cost=0.29..0.34 rows=1 width=36) (never executed)

  • Index Cond: (("DefinitionHash" = d."DefinitionHash") AND ("UploadID" = 1))
  • Filter: (d."DataHash" = "DataHash")
30. 0.000 0.000 ↓ 0.0 0

Index Scan using "PK_ProjectProjectID" on "Projects" p (cost=0.15..0.17 rows=1 width=42) (never executed)

  • Index Cond: ("ProjectID" = d."ProjectID")
31. 0.000 0.000 ↓ 0.0 0

Append (cost=0.00..31.24 rows=5 width=32) (never executed)

32. 0.000 0.000 ↓ 0.0 0

Seq Scan on "DefinitionsTreeUploads" (cost=0.00..0.00 rows=1 width=32) (never executed)

  • Filter: (("UploadID" = 1) AND ("DefinitionsTree_ProjectID_9"."DescendantHash" = "DescendantHash") AND ("DefinitionsTree_ProjectID_9"."AncestorHash" = "AncestorHash"))
33. 0.000 0.000 ↓ 0.0 0

Index Only Scan using "PK_DTU_ProjectID_2_AncestorHashDescendantHashUploadID" on "DefinitionsTreeUploads_ProjectID_2" (cost=0.41..8.44 rows=1 width=32) (never executed)

  • Index Cond: (("AncestorHash" = "DefinitionsTree_ProjectID_9"."AncestorHash") AND ("DescendantHash" = "DefinitionsTree_ProjectID_9"."DescendantHash") AND ("UploadID" = 1))
  • Heap Fetches: 0
34. 0.000 0.000 ↓ 0.0 0

Index Only Scan using "PK_DTU_ProjectID_7_AncestorHashDescendantHashUploadID" on "DefinitionsTreeUploads_ProjectID_7" (cost=0.41..8.44 rows=1 width=32) (never executed)

  • Index Cond: (("AncestorHash" = "DefinitionsTree_ProjectID_9"."AncestorHash") AND ("DescendantHash" = "DefinitionsTree_ProjectID_9"."DescendantHash") AND ("UploadID" = 1))
  • Heap Fetches: 0
35. 0.000 0.000 ↓ 0.0 0

Index Only Scan using "PK_DTU_ProjectID_8_AncestorHashDescendantHashUploadID" on "DefinitionsTreeUploads_ProjectID_8" (cost=0.28..5.90 rows=1 width=32) (never executed)

  • Index Cond: (("AncestorHash" = "DefinitionsTree_ProjectID_9"."AncestorHash") AND ("DescendantHash" = "DefinitionsTree_ProjectID_9"."DescendantHash") AND ("UploadID" = 1))
  • Heap Fetches: 0
36. 0.000 0.000 ↓ 0.0 0

Index Only Scan using "PK_DTU_ProjectID_9_AncestorHashDescendantHashUploadID" on "DefinitionsTreeUploads_ProjectID_9" (cost=0.41..8.44 rows=1 width=32) (never executed)

  • Index Cond: (("AncestorHash" = "DefinitionsTree_ProjectID_9"."AncestorHash") AND ("DescendantHash" = "DefinitionsTree_ProjectID_9"."DescendantHash") AND ("UploadID" = 1))
  • Heap Fetches: 0