explain.depesz.com

PostgreSQL's explain analyze made readable

Result: GecH

Settings
# exclusive inclusive rows x rows loops node
1. 26.992 174.211 ↑ 2.8 68,907 1

HashAggregate (cost=25,575.20..27,492.31 rows=191,711 width=62) (actual time=164.303..174.211 rows=68,907 loops=1)

  • Group Key: w."PageID", "GroupProducts"."ProductCode
2. 14.528 147.219 ↑ 2.8 68,907 1

Hash Join (cost=18,146.40..24,616.64 rows=191,711 width=62) (actual time=119.077..147.219 rows=68,907 loops=1)

  • Hash Cond: (("WebPages"."WebPage")::text = (w."WebPage")::text)
3. 42.799 131.808 ↑ 2.8 68,907 1

HashAggregate (cost=18,019.47..19,936.58 rows=191,711 width=276) (actual time=118.175..131.808 rows=68,907 loops=1)

  • Group Key: "WebPages"."WebPage", "GroupProducts"."ProductCode
4. 4.114 89.009 ↑ 1.8 108,665 1

Append (cost=436.30..17,060.92 rows=191,711 width=276) (actual time=3.947..89.009 rows=108,665 loops=1)

5. 4.555 9.529 ↓ 1.0 21,913 1

Hash Join (cost=436.30..1,777.58 rows=21,863 width=26) (actual time=3.947..9.529 rows=21,913 loops=1)

  • Hash Cond: (("GroupProducts"."Group")::text = ("PageGroups"."Group")::text)
6. 1.064 1.064 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.010..1.064 rows=17,630 loops=1)

7. 1.218 3.910 ↑ 1.0 6,824 1

Hash (cost=351.00..351.00 rows=6,824 width=37) (actual time=3.910..3.910 rows=6,824 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 526kB
8. 1.471 2.692 ↑ 1.0 6,824 1

Hash Join (cost=126.93..351.00 rows=6,824 width=37) (actual time=0.872..2.692 rows=6,824 loops=1)

  • Hash Cond: (("PageGroups"."WebPage")::text = ("WebPages"."WebPage")::text)
9. 0.373 0.373 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.007..0.373 rows=6,824 loops=1)

10. 0.515 0.848 ↑ 1.0 2,930 1

Hash (cost=90.30..90.30 rows=2,930 width=17) (actual time=0.848..0.848 rows=2,930 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 175kB
11. 0.333 0.333 ↑ 1.0 2,930 1

Seq Scan on "WebPages" (cost=0.00..90.30 rows=2,930 width=17) (actual time=0.006..0.333 rows=2,930 loops=1)

12. 5.093 10.673 ↑ 1.0 25,422 1

Hash Join (cost=508.65..2,022.05 rows=25,852 width=30) (actual time=4.545..10.673 rows=25,422 loops=1)

  • Hash Cond: (("GroupProducts_1"."Group")::text = ("PageGroups_1"."Group")::text)
13. 1.087 1.087 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" "GroupProducts_1" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.016..1.087 rows=17,630 loops=1)

14. 1.419 4.493 ↑ 1.0 7,935 1

Hash (cost=407.79..407.79 rows=8,069 width=41) (actual time=4.493..4.493 rows=7,935 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 634kB
15. 1.779 3.074 ↑ 1.0 7,935 1

Hash Join (cost=137.15..407.79 rows=8,069 width=41) (actual time=0.892..3.074 rows=7,935 loops=1)

  • Hash Cond: (("PageGroups_1"."WebPage")::text = ("PageChildren_1"."Children")::text)
16. 0.428 0.428 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" "PageGroups_1" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.009..0.428 rows=6,824 loops=1)

17. 0.553 0.867 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.867..0.867 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
18. 0.314 0.314 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_1" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.007..0.314 rows=3,251 loops=1)

19. 5.586 16.379 ↓ 1.1 30,859 1

Hash Join (cost=560.80..2,414.60 rows=29,389 width=30) (actual time=4.350..16.379 rows=30,859 loops=1)

  • Hash Cond: (("PageGroups_2"."WebPage")::text = ("PageChildren_2"."Children")::text)
20. 5.206 8.296 ↓ 1.0 21,913 1

Hash Join (cost=215.54..1,556.82 rows=21,863 width=25) (actual time=1.836..8.296 rows=21,913 loops=1)

  • Hash Cond: (("GroupProducts_2"."Group")::text = ("PageGroups_2"."Group")::text)
21. 1.313 1.313 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" "GroupProducts_2" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.021..1.313 rows=17,630 loops=1)

22. 1.162 1.777 ↑ 1.0 6,824 1

Hash (cost=130.24..130.24 rows=6,824 width=36) (actual time=1.777..1.777 rows=6,824 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 526kB
23. 0.615 0.615 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" "PageGroups_2" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.010..0.615 rows=6,824 loops=1)

24. 0.634 2.497 ↓ 1.0 3,768 1

Hash (cost=299.06..299.06 rows=3,696 width=38) (actual time=2.497..2.497 rows=3,768 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 281kB
25. 0.791 1.863 ↓ 1.0 3,768 1

Hash Join (cost=137.15..299.06 rows=3,696 width=38) (actual time=0.890..1.863 rows=3,768 loops=1)

  • Hash Cond: (("PageChildren_2"."WebPage")::text = ("PageChildren_1_1"."Children")::text)
26. 0.207 0.207 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_2" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.009..0.207 rows=3,251 loops=1)

27. 0.545 0.865 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.865..0.865 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
28. 0.320 0.320 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_1_1" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.006..0.320 rows=3,251 loops=1)

29. 5.131 17.348 ↑ 1.2 27,093 1

Hash Join (cost=778.64..2,672.68 rows=33,413 width=30) (actual time=5.632..17.348 rows=27,093 loops=1)

  • Hash Cond: (("PageGroups_3"."WebPage")::text = ("PageChildren_3"."Children")::text)
30. 5.286 8.438 ↓ 1.0 21,913 1

Hash Join (cost=215.54..1,556.82 rows=21,863 width=25) (actual time=1.814..8.438 rows=21,913 loops=1)

  • Hash Cond: (("GroupProducts_3"."Group")::text = ("PageGroups_3"."Group")::text)
31. 1.395 1.395 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" "GroupProducts_3" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.021..1.395 rows=17,630 loops=1)

32. 1.141 1.757 ↑ 1.0 6,824 1

Hash (cost=130.24..130.24 rows=6,824 width=36) (actual time=1.757..1.757 rows=6,824 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 526kB
33. 0.616 0.616 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" "PageGroups_3" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.009..0.616 rows=6,824 loops=1)

34. 0.440 3.779 ↑ 1.6 2,704 1

Hash (cost=510.57..510.57 rows=4,202 width=38) (actual time=3.779..3.779 rows=2,704 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 231kB
35. 0.574 3.339 ↑ 1.6 2,704 1

Hash Join (cost=274.29..510.57 rows=4,202 width=38) (actual time=1.791..3.339 rows=2,704 loops=1)

  • Hash Cond: (("PageChildren_2_1"."WebPage")::text = ("PageChildren_1_2"."Children")::text)
36. 0.852 1.900 ↓ 1.0 3,768 1

Hash Join (cost=137.15..299.06 rows=3,696 width=38) (actual time=0.910..1.900 rows=3,768 loops=1)

  • Hash Cond: (("PageChildren_3"."WebPage")::text = ("PageChildren_2_1"."Children")::text)
37. 0.204 0.204 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_3" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.007..0.204 rows=3,251 loops=1)

38. 0.548 0.844 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.844..0.844 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
39. 0.296 0.296 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_2_1" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.006..0.296 rows=3,251 loops=1)

40. 0.551 0.865 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.865..0.865 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
41. 0.314 0.314 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_1_2" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.010..0.314 rows=3,251 loops=1)

42. 2.218 15.443 ↑ 11.3 3,375 1

Hash Join (cost=1,007.53..2,974.70 rows=37,994 width=30) (actual time=7.100..15.443 rows=3,375 loops=1)

  • Hash Cond: (("PageGroups_4"."WebPage")::text = ("PageChildren_4"."Children")::text)
43. 5.135 8.548 ↓ 1.0 21,913 1

Hash Join (cost=215.54..1,556.82 rows=21,863 width=25) (actual time=2.342..8.548 rows=21,913 loops=1)

  • Hash Cond: (("GroupProducts_4"."Group")::text = ("PageGroups_4"."Group")::text)
44. 1.133 1.133 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" "GroupProducts_4" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.020..1.133 rows=17,630 loops=1)

45. 1.574 2.280 ↑ 1.0 6,824 1

Hash (cost=130.24..130.24 rows=6,824 width=36) (actual time=2.280..2.280 rows=6,824 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 526kB
46. 0.706 0.706 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" "PageGroups_4" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.010..0.706 rows=6,824 loops=1)

47. 0.095 4.677 ↑ 10.8 444 1

Hash (cost=732.27..732.27 rows=4,778 width=38) (actual time=4.677..4.677 rows=444 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 93kB
48. 0.272 4.582 ↑ 10.8 444 1

Hash Join (cost=411.44..732.27 rows=4,778 width=38) (actual time=2.765..4.582 rows=444 loops=1)

  • Hash Cond: (("PageChildren_2_2"."WebPage")::text = ("PageChildren_1_3"."Children")::text)
49. 0.611 3.424 ↑ 1.6 2,704 1

Hash Join (cost=274.29..510.57 rows=4,202 width=38) (actual time=1.765..3.424 rows=2,704 loops=1)

  • Hash Cond: (("PageChildren_3_1"."WebPage")::text = ("PageChildren_2_2"."Children")::text)
50. 0.837 1.948 ↓ 1.0 3,768 1

Hash Join (cost=137.15..299.06 rows=3,696 width=38) (actual time=0.883..1.948 rows=3,768 loops=1)

  • Hash Cond: (("PageChildren_4"."WebPage")::text = ("PageChildren_3_1"."Children")::text)
51. 0.252 0.252 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_4" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.007..0.252 rows=3,251 loops=1)

52. 0.555 0.859 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.859..0.859 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
53. 0.304 0.304 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_3_1" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.005..0.304 rows=3,251 loops=1)

54. 0.548 0.865 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.865..0.865 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
55. 0.317 0.317 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_2_2" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.009..0.317 rows=3,251 loops=1)

56. 0.552 0.886 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.886..0.886 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
57. 0.334 0.334 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_1_3" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.020..0.334 rows=3,251 loops=1)

58. 1.623 15.523 ↑ 14,400.0 3 1

Hash Join (cost=1,235.63..3,282.20 rows=43,200 width=30) (actual time=9.339..15.523 rows=3 loops=1)

  • Hash Cond: (("PageGroups_5"."WebPage")::text = ("PageChildren_5"."Children")::text)
59. 4.908 7.887 ↓ 1.0 21,913 1

Hash Join (cost=215.54..1,556.82 rows=21,863 width=25) (actual time=1.875..7.887 rows=21,913 loops=1)

  • Hash Cond: (("GroupProducts_5"."Group")::text = ("PageGroups_5"."Group")::text)
60. 1.164 1.164 ↑ 1.0 17,630 1

Seq Scan on "GroupProducts" "GroupProducts_5" (cost=0.00..329.30 rows=17,630 width=30) (actual time=0.017..1.164 rows=17,630 loops=1)

61. 1.182 1.815 ↑ 1.0 6,824 1

Hash (cost=130.24..130.24 rows=6,824 width=36) (actual time=1.815..1.815 rows=6,824 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 526kB
62. 0.633 0.633 ↑ 1.0 6,824 1

Seq Scan on "PageGroups" "PageGroups_5" (cost=0.00..130.24 rows=6,824 width=36) (actual time=0.011..0.633 rows=6,824 loops=1)

63. 0.006 6.013 ↑ 5,433.0 1 1

Hash (cost=952.17..952.17 rows=5,433 width=38) (actual time=6.013..6.013 rows=1 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 65kB
64. 0.175 6.007 ↑ 5,433.0 1 1

Hash Join (cost=619.56..952.17 rows=5,433 width=38) (actual time=4.464..6.007 rows=1 loops=1)

  • Hash Cond: (("PageChildren_3_2"."WebPage")::text = ("PageChildren_2_3"."Children")::text)
65. 0.586 3.375 ↑ 1.6 2,704 1

Hash Join (cost=274.29..510.57 rows=4,202 width=38) (actual time=1.806..3.375 rows=2,704 loops=1)

  • Hash Cond: (("PageChildren_4_1"."WebPage")::text = ("PageChildren_3_2"."Children")::text)
66. 0.812 1.892 ↓ 1.0 3,768 1

Hash Join (cost=137.15..299.06 rows=3,696 width=38) (actual time=0.894..1.892 rows=3,768 loops=1)

  • Hash Cond: (("PageChildren_5"."WebPage")::text = ("PageChildren_4_1"."Children")::text)
67. 0.218 0.218 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_5" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.013..0.218 rows=3,251 loops=1)

68. 0.546 0.862 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.862..0.862 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
69. 0.316 0.316 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_4_1" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.007..0.316 rows=3,251 loops=1)

70. 0.573 0.897 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.897..0.897 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
71. 0.324 0.324 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_3_2" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.014..0.324 rows=3,251 loops=1)

72. 0.643 2.457 ↓ 1.0 3,768 1

Hash (cost=299.06..299.06 rows=3,696 width=38) (actual time=2.457..2.457 rows=3,768 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 281kB
73. 0.797 1.814 ↓ 1.0 3,768 1

Hash Join (cost=137.15..299.06 rows=3,696 width=38) (actual time=0.847..1.814 rows=3,768 loops=1)

  • Hash Cond: (("PageChildren_2_3"."WebPage")::text = ("PageChildren_1_4"."Children")::text)
74. 0.192 0.192 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_2_3" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.006..0.192 rows=3,251 loops=1)

75. 0.545 0.825 ↑ 1.0 3,251 1

Hash (cost=96.51..96.51 rows=3,251 width=38) (actual time=0.825..0.825 rows=3,251 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 258kB
76. 0.280 0.280 ↑ 1.0 3,251 1

Seq Scan on "PageChildren" "PageChildren_1_4" (cost=0.00..96.51 rows=3,251 width=38) (actual time=0.005..0.280 rows=3,251 loops=1)

77. 0.422 0.883 ↑ 1.0 2,930 1

Hash (cost=90.30..90.30 rows=2,930 width=21) (actual time=0.883..0.883 rows=2,930 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 186kB
78. 0.461 0.461 ↑ 1.0 2,930 1

Seq Scan on "WebPages" w (cost=0.00..90.30 rows=2,930 width=21) (actual time=0.017..0.461 rows=2,930 loops=1)

Planning time : 18.019 ms