explain.depesz.com

PostgreSQL's explain analyze made readable

Result: oFMM

Settings
# exclusive inclusive rows x rows loops node
1. 0.006 6,683.949 ↑ 1.0 1 1

Nested Loop (cost=231,145.72..231,145.96 rows=1 width=320) (actual time=6,683.945..6,683.949 rows=1 loops=1)

2. 0.005 6,683.928 ↑ 1.0 1 1

Nested Loop (cost=231,136.37..231,136.58 rows=1 width=288) (actual time=6,683.924..6,683.928 rows=1 loops=1)

3. 0.005 4,625.443 ↑ 1.0 1 1

Nested Loop (cost=167,957.99..167,958.17 rows=1 width=256) (actual time=4,625.440..4,625.443 rows=1 loops=1)

4. 0.006 4,612.709 ↑ 1.0 1 1

Nested Loop (cost=161,247.24..161,247.39 rows=1 width=224) (actual time=4,612.706..4,612.709 rows=1 loops=1)

5. 0.004 3,737.537 ↑ 1.0 1 1

Nested Loop (cost=115,572.86..115,572.97 rows=1 width=160) (actual time=3,737.535..3,737.537 rows=1 loops=1)

6. 0.005 3,737.516 ↑ 1.0 1 1

Nested Loop (cost=115,563.51..115,563.59 rows=1 width=128) (actual time=3,737.514..3,737.516 rows=1 loops=1)

7. 0.006 1,279.837 ↑ 1.0 1 1

Nested Loop (cost=52,385.13..52,385.18 rows=1 width=96) (actual time=1,279.836..1,279.837 rows=1 loops=1)

8. 1.048 1,266.732 ↑ 1.0 1 1

Aggregate (cost=45,674.38..45,674.39 rows=1 width=64) (actual time=1,266.732..1,266.732 rows=1 loops=1)

9. 46.825 1,265.684 ↑ 1.3 3,331 1

Finalize GroupAggregate (cost=44,778.48..45,611.72 rows=4,177 width=120) (actual time=1,013.627..1,265.684 rows=3,331 loops=1)

  • Group Key: s.recipeheaderid, s.stockitemid, mi.id, sg.name, s.menuitemname
10. 53.220 1,218.859 ↓ 2.1 7,420 1

Gather Merge (cost=44,778.48..45,275.86 rows=3,480 width=240) (actual time=1,013.527..1,218.859 rows=7,420 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
11. 177.569 1,165.639 ↓ 1.4 2,473 3 / 3

Partial GroupAggregate (cost=43,778.45..43,874.15 rows=1,740 width=240) (actual time=974.714..1,165.639 rows=2,473 loops=3)

  • Group Key: s.recipeheaderid, s.stockitemid, mi.id, sg.name, s.menuitemname
12. 228.784 988.070 ↓ 29.5 51,267 3 / 3

Sort (cost=43,778.45..43,782.80 rows=1,740 width=98) (actual time=974.664..988.070 rows=51,267 loops=3)

  • Sort Key: s.recipeheaderid, s.stockitemid, mi.id, sg.name, s.menuitemname
  • Sort Method: quicksort Memory: 8629kB
  • Worker 0: Sort Method: quicksort Memory: 7400kB
  • Worker 1: Sort Method: quicksort Memory: 10209kB
13. 37.507 759.286 ↓ 29.5 51,267 3 / 3

Nested Loop Left Join (cost=10.93..43,684.80 rows=1,740 width=98) (actual time=158.428..759.286 rows=51,267 loops=3)

14. 44.702 414.179 ↓ 29.5 51,267 3 / 3

Hash Join (cost=10.52..42,670.46 rows=1,740 width=98) (actual time=158.287..414.179 rows=51,267 loops=3)

  • Hash Cond: (s.storeid = st.id)
15. 369.134 369.134 ↓ 29.5 51,267 3 / 3

Parallel Seq Scan on sales s (cost=0.00..42,636.02 rows=1,740 width=96) (actual time=157.851..369.134 rows=51,267 loops=3)

  • Filter: (isactive AND (NOT iscomplimentary) AND (status <> 3) AND (status <> 6) AND ((salesdate)::date >= '2020-01-01'::date) AND ((salesdate)::date <= '2020-01-31'::date))
  • Rows Removed by Filter: 227717
16. 0.014 0.343 ↑ 1.0 22 3 / 3

Hash (cost=10.24..10.24 rows=22 width=50) (actual time=0.343..0.343 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
17. 0.163 0.329 ↑ 1.0 22 3 / 3

Hash Left Join (cost=2.99..10.24 rows=22 width=50) (actual time=0.249..0.329 rows=22 loops=3)

  • Hash Cond: (st.storegroupid = sg.id)
18. 0.027 0.115 ↑ 1.0 22 3 / 3

Hash Join (cost=1.50..8.68 rows=22 width=48) (actual time=0.071..0.115 rows=22 loops=3)

  • Hash Cond: (usp.storeid = st.id)
19. 0.057 0.057 ↑ 1.0 22 3 / 3

Seq Scan on userstorepermission usp (cost=0.00..7.11 rows=22 width=16) (actual time=0.022..0.057 rows=22 loops=3)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
20. 0.016 0.031 ↑ 1.0 22 3 / 3

Hash (cost=1.22..1.22 rows=22 width=32) (actual time=0.030..0.031 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
21. 0.015 0.015 ↑ 1.0 22 3 / 3

Seq Scan on store st (cost=0.00..1.22 rows=22 width=32) (actual time=0.011..0.015 rows=22 loops=3)

22. 0.040 0.051 ↑ 1.0 22 3 / 3

Hash (cost=1.22..1.22 rows=22 width=34) (actual time=0.051..0.051 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
23. 0.011 0.011 ↑ 1.0 22 3 / 3

Seq Scan on storegroup sg (cost=0.00..1.22 rows=22 width=34) (actual time=0.007..0.011 rows=22 loops=3)

24. 307.600 307.600 ↑ 1.0 1 153,800 / 3

Index Only Scan using ix_menuitem_id on menuitem mi (cost=0.42..0.58 rows=1 width=16) (actual time=0.006..0.006 rows=1 loops=153,800)

  • Index Cond: (id = s.menuitemid)
  • Heap Fetches: 0
25. 1.064 13.099 ↑ 1.0 1 1

Aggregate (cost=6,710.75..6,710.76 rows=1 width=32) (actual time=13.099..13.099 rows=1 loops=1)

26. 0.852 12.035 ↓ 20.0 4,673 1

Hash Join (cost=7.82..6,709.58 rows=234 width=7) (actual time=7.589..12.035 rows=4,673 loops=1)

  • Hash Cond: (sit.storeid = usp_1.storeid)
27. 11.142 11.142 ↓ 20.6 4,673 1

Index Scan using ix_stockitemtransaction_transactiontype on stockitemtransaction sit (cost=0.43..6,701.47 rows=227 width=23) (actual time=7.531..11.142 rows=4,673 loops=1)

  • Index Cond: (transactiontype = ANY ('{1,4}'::integer[]))
  • Filter: (((transactiontime)::date >= '2020-01-01'::date) AND ((transactiontime)::date <= '2020-01-31'::date))
  • Rows Removed by Filter: 37043
28. 0.006 0.041 ↑ 1.0 22 1

Hash (cost=7.11..7.11 rows=22 width=16) (actual time=0.041..0.041 rows=22 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
29. 0.035 0.035 ↑ 1.0 22 1

Seq Scan on userstorepermission usp_1 (cost=0.00..7.11 rows=22 width=16) (actual time=0.012..0.035 rows=22 loops=1)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
30. 0.000 2,457.674 ↑ 1.0 1 1

Finalize Aggregate (cost=63,178.38..63,178.39 rows=1 width=32) (actual time=2,457.674..2,457.674 rows=1 loops=1)

31. 7.308 2,458.302 ↓ 1.5 3 1

Gather (cost=63,178.15..63,178.36 rows=2 width=32) (actual time=2,456.056..2,458.302 rows=3 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
32. 243.747 2,450.994 ↑ 1.0 1 3 / 3

Partial Aggregate (cost=62,178.15..62,178.16 rows=1 width=32) (actual time=2,450.993..2,450.994 rows=1 loops=3)

33. 147.983 2,207.247 ↓ 79.9 268,178 3 / 3

Hash Join (cost=356.63..62,152.98 rows=3,356 width=9) (actual time=42.180..2,207.247 rows=268,178 loops=3)

  • Hash Cond: (sit_1.storeid = usp_2.storeid)
34. 325.093 2,059.207 ↓ 45.0 268,178 3 / 3

Nested Loop (cost=349.24..62,126.82 rows=5,965 width=41) (actual time=42.070..2,059.207 rows=268,178 loops=3)

35. 111.544 125.046 ↓ 29.2 268,178 3 / 3

Parallel Bitmap Heap Scan on stockitemtransaction sit_1 (cost=348.68..29,958.64 rows=9,197 width=44) (actual time=42.035..125.046 rows=268,178 loops=3)

  • Recheck Cond: (((transactiontime)::date >= '2020-01-01'::date) AND ((transactiontime)::date <= '2020-01-31'::date) AND (transactiontype = 2))
  • Heap Blocks: exact=5115
36. 13.502 13.502 ↓ 36.4 804,534 1 / 3

Bitmap Index Scan on ix_stockitemtransaction_transactiontime_cast (cost=0.00..343.16 rows=22,073 width=0) (actual time=40.505..40.505 rows=804,534 loops=1)

  • Index Cond: (((transactiontime)::date >= '2020-01-01'::date) AND ((transactiontime)::date <= '2020-01-31'::date))
37. 1,609.068 1,609.068 ↑ 1.0 1 804,534 / 3

Index Scan using dailytotals_storeid_stockitemid_calculationdate_uq on dailytotals dt (cost=0.56..3.50 rows=1 width=41) (actual time=0.006..0.006 rows=1 loops=804,534)

  • Index Cond: ((stockitemid = sit_1.stockitemid) AND (storeid = sit_1.storeid) AND (calculationdate = (sit_1.transactiontime)::date))
38. 0.008 0.057 ↑ 1.0 22 3 / 3

Hash (cost=7.11..7.11 rows=22 width=16) (actual time=0.057..0.057 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
39. 0.049 0.049 ↑ 1.0 22 3 / 3

Seq Scan on userstorepermission usp_2 (cost=0.00..7.11 rows=22 width=16) (actual time=0.014..0.049 rows=22 loops=3)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
40. 0.002 0.017 ↑ 1.0 1 1

Aggregate (cost=9.35..9.36 rows=1 width=32) (actual time=0.017..0.017 rows=1 loops=1)

41. 0.000 0.015 ↓ 0.0 0 1

Nested Loop (cost=1.26..9.34 rows=1 width=9) (actual time=0.015..0.015 rows=0 loops=1)

  • Join Filter: (sit_2.storeid = usp_3.storeid)
42. 0.001 0.015 ↓ 0.0 0 1

Nested Loop (cost=0.99..9.04 rows=1 width=41) (actual time=0.015..0.015 rows=0 loops=1)

43. 0.014 0.014 ↓ 0.0 0 1

Index Scan using ix_stockitemtransaction_transactiontype on stockitemtransaction sit_2 (cost=0.43..4.46 rows=1 width=44) (actual time=0.014..0.014 rows=0 loops=1)

  • Index Cond: (transactiontype = 8)
  • Filter: (((transactiontime)::date >= '2020-01-01'::date) AND ((transactiontime)::date <= '2020-01-31'::date))
44. 0.000 0.000 ↓ 0.0 0

Index Scan using ix_dailytotals_stockitemid_calculationdate_storeid on dailytotals dt_1 (cost=0.56..4.58 rows=1 width=41) (never executed)

  • Index Cond: ((stockitemid = sit_2.stockitemid) AND (calculationdate = (sit_2.transactiontime)::date) AND (storeid = sit_2.storeid))
45. 0.000 0.000 ↓ 0.0 0

Index Only Scan using userstorepermission_storeid_tenantuserid_uq on userstorepermission usp_3 (cost=0.27..0.29 rows=1 width=16) (never executed)

  • Index Cond: ((storeid = dt_1.storeid) AND (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid))
  • Heap Fetches: 0
46. 0.843 875.166 ↑ 1.0 1 1

Aggregate (cost=45,674.38..45,674.39 rows=1 width=64) (actual time=875.166..875.166 rows=1 loops=1)

47. 47.719 874.323 ↑ 1.3 3,219 1

Finalize GroupAggregate (cost=44,778.48..45,611.72 rows=4,177 width=120) (actual time=665.121..874.323 rows=3,219 loops=1)

  • Group Key: s_1.recipeheaderid, s_1.stockitemid, mi_1.id, sg_1.name, s_1.menuitemname
48. 27.510 826.604 ↓ 2.0 7,122 1

Gather Merge (cost=44,778.48..45,275.86 rows=3,480 width=240) (actual time=665.051..826.604 rows=7,122 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
49. 138.358 799.094 ↓ 1.4 2,374 3 / 3

Partial GroupAggregate (cost=43,778.45..43,874.15 rows=1,740 width=240) (actual time=650.143..799.094 rows=2,374 loops=3)

  • Group Key: s_1.recipeheaderid, s_1.stockitemid, mi_1.id, sg_1.name, s_1.menuitemname
50. 191.034 660.736 ↓ 26.1 45,361 3 / 3

Sort (cost=43,778.45..43,782.80 rows=1,740 width=98) (actual time=650.095..660.736 rows=45,361 loops=3)

  • Sort Key: s_1.recipeheaderid, s_1.stockitemid, mi_1.id, sg_1.name, s_1.menuitemname
  • Sort Method: quicksort Memory: 6307kB
  • Worker 0: Sort Method: quicksort Memory: 8149kB
  • Worker 1: Sort Method: quicksort Memory: 9291kB
51. 28.398 469.702 ↓ 26.1 45,361 3 / 3

Nested Loop Left Join (cost=10.93..43,684.80 rows=1,740 width=98) (actual time=188.249..469.702 rows=45,361 loops=3)

52. 30.903 305.220 ↓ 26.1 45,361 3 / 3

Hash Join (cost=10.52..42,670.46 rows=1,740 width=98) (actual time=188.229..305.220 rows=45,361 loops=3)

  • Hash Cond: (s_1.storeid = st_1.id)
53. 274.166 274.166 ↓ 26.1 45,361 3 / 3

Parallel Seq Scan on sales s_1 (cost=0.00..42,636.02 rows=1,740 width=96) (actual time=188.021..274.166 rows=45,361 loops=3)

  • Filter: (isactive AND (NOT iscomplimentary) AND (status <> 3) AND (status <> 6) AND ((salesdate)::date >= '2020-02-01'::date) AND ((salesdate)::date <= '2020-02-28'::date))
  • Rows Removed by Filter: 233622
54. 0.009 0.151 ↑ 1.0 22 3 / 3

Hash (cost=10.24..10.24 rows=22 width=50) (actual time=0.151..0.151 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
55. 0.019 0.142 ↑ 1.0 22 3 / 3

Hash Left Join (cost=2.99..10.24 rows=22 width=50) (actual time=0.096..0.142 rows=22 loops=3)

  • Hash Cond: (st_1.storegroupid = sg_1.id)
56. 0.020 0.103 ↑ 1.0 22 3 / 3

Hash Join (cost=1.50..8.68 rows=22 width=48) (actual time=0.063..0.103 rows=22 loops=3)

  • Hash Cond: (usp_4.storeid = st_1.id)
57. 0.056 0.056 ↑ 1.0 22 3 / 3

Seq Scan on userstorepermission usp_4 (cost=0.00..7.11 rows=22 width=16) (actual time=0.023..0.056 rows=22 loops=3)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
58. 0.012 0.027 ↑ 1.0 22 3 / 3

Hash (cost=1.22..1.22 rows=22 width=32) (actual time=0.026..0.027 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
59. 0.015 0.015 ↑ 1.0 22 3 / 3

Seq Scan on store st_1 (cost=0.00..1.22 rows=22 width=32) (actual time=0.011..0.015 rows=22 loops=3)

60. 0.009 0.020 ↑ 1.0 22 3 / 3

Hash (cost=1.22..1.22 rows=22 width=34) (actual time=0.019..0.020 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
61. 0.011 0.011 ↑ 1.0 22 3 / 3

Seq Scan on storegroup sg_1 (cost=0.00..1.22 rows=22 width=34) (actual time=0.007..0.011 rows=22 loops=3)

62. 136.084 136.084 ↑ 1.0 1 136,084 / 3

Index Only Scan using ix_menuitem_id on menuitem mi_1 (cost=0.42..0.58 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=136,084)

  • Index Cond: (id = s_1.menuitemid)
  • Heap Fetches: 0
63. 0.737 12.729 ↑ 1.0 1 1

Aggregate (cost=6,710.75..6,710.76 rows=1 width=32) (actual time=12.729..12.729 rows=1 loops=1)

64. 0.550 11.992 ↓ 13.6 3,186 1

Hash Join (cost=7.82..6,709.58 rows=234 width=7) (actual time=9.825..11.992 rows=3,186 loops=1)

  • Hash Cond: (sit_3.storeid = usp_5.storeid)
65. 11.402 11.402 ↓ 14.0 3,186 1

Index Scan using ix_stockitemtransaction_transactiontype on stockitemtransaction sit_3 (cost=0.43..6,701.47 rows=227 width=23) (actual time=9.770..11.402 rows=3,186 loops=1)

  • Index Cond: (transactiontype = ANY ('{1,4}'::integer[]))
  • Filter: (((transactiontime)::date >= '2020-02-01'::date) AND ((transactiontime)::date <= '2020-02-28'::date))
  • Rows Removed by Filter: 38530
66. 0.006 0.040 ↑ 1.0 22 1

Hash (cost=7.11..7.11 rows=22 width=16) (actual time=0.040..0.040 rows=22 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
67. 0.034 0.034 ↑ 1.0 22 1

Seq Scan on userstorepermission usp_5 (cost=0.00..7.11 rows=22 width=16) (actual time=0.011..0.034 rows=22 loops=1)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
68. 0.000 2,058.480 ↑ 1.0 1 1

Finalize Aggregate (cost=63,178.38..63,178.39 rows=1 width=32) (actual time=2,058.480..2,058.480 rows=1 loops=1)

69. 6.577 2,059.446 ↓ 1.5 3 1

Gather (cost=63,178.15..63,178.36 rows=2 width=32) (actual time=2,057.920..2,059.446 rows=3 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
70. 217.160 2,052.869 ↑ 1.0 1 3 / 3

Partial Aggregate (cost=62,178.15..62,178.16 rows=1 width=32) (actual time=2,052.869..2,052.869 rows=1 loops=3)

71. 129.668 1,835.709 ↓ 67.9 227,906 3 / 3

Hash Join (cost=356.63..62,152.98 rows=3,356 width=9) (actual time=29.447..1,835.709 rows=227,906 loops=3)

  • Hash Cond: (sit_4.storeid = usp_6.storeid)
72. 234.610 1,705.986 ↓ 38.2 227,906 3 / 3

Nested Loop (cost=349.24..62,126.82 rows=5,965 width=41) (actual time=29.341..1,705.986 rows=227,906 loops=3)

73. 93.348 103.938 ↓ 24.8 227,906 3 / 3

Parallel Bitmap Heap Scan on stockitemtransaction sit_4 (cost=348.68..29,958.64 rows=9,197 width=44) (actual time=29.305..103.938 rows=227,906 loops=3)

  • Recheck Cond: (((transactiontime)::date >= '2020-02-01'::date) AND ((transactiontime)::date <= '2020-02-28'::date) AND (transactiontype = 2))
  • Heap Blocks: exact=4651
74. 10.590 10.590 ↓ 31.0 683,719 1 / 3

Bitmap Index Scan on ix_stockitemtransaction_transactiontime_cast (cost=0.00..343.16 rows=22,073 width=0) (actual time=31.771..31.771 rows=683,719 loops=1)

  • Index Cond: (((transactiontime)::date >= '2020-02-01'::date) AND ((transactiontime)::date <= '2020-02-28'::date))
75. 1,367.438 1,367.438 ↑ 1.0 1 683,719 / 3

Index Scan using dailytotals_storeid_stockitemid_calculationdate_uq on dailytotals dt_2 (cost=0.56..3.50 rows=1 width=41) (actual time=0.006..0.006 rows=1 loops=683,719)

  • Index Cond: ((stockitemid = sit_4.stockitemid) AND (storeid = sit_4.storeid) AND (calculationdate = (sit_4.transactiontime)::date))
76. 0.008 0.055 ↑ 1.0 22 3 / 3

Hash (cost=7.11..7.11 rows=22 width=16) (actual time=0.055..0.055 rows=22 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 10kB
77. 0.047 0.047 ↑ 1.0 22 3 / 3

Seq Scan on userstorepermission usp_6 (cost=0.00..7.11 rows=22 width=16) (actual time=0.013..0.047 rows=22 loops=3)

  • Filter: (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid)
  • Rows Removed by Filter: 227
78. 0.002 0.015 ↑ 1.0 1 1

Aggregate (cost=9.35..9.36 rows=1 width=32) (actual time=0.014..0.015 rows=1 loops=1)

79. 0.000 0.013 ↓ 0.0 0 1

Nested Loop (cost=1.26..9.34 rows=1 width=9) (actual time=0.013..0.013 rows=0 loops=1)

  • Join Filter: (sit_5.storeid = usp_7.storeid)
80. 0.001 0.013 ↓ 0.0 0 1

Nested Loop (cost=0.99..9.04 rows=1 width=41) (actual time=0.012..0.013 rows=0 loops=1)

81. 0.012 0.012 ↓ 0.0 0 1

Index Scan using ix_stockitemtransaction_transactiontype on stockitemtransaction sit_5 (cost=0.43..4.46 rows=1 width=44) (actual time=0.012..0.012 rows=0 loops=1)

  • Index Cond: (transactiontype = 8)
  • Filter: (((transactiontime)::date >= '2020-02-01'::date) AND ((transactiontime)::date <= '2020-02-28'::date))
82. 0.000 0.000 ↓ 0.0 0

Index Scan using ix_dailytotals_stockitemid_calculationdate_storeid on dailytotals dt_3 (cost=0.56..4.58 rows=1 width=41) (never executed)

  • Index Cond: ((stockitemid = sit_5.stockitemid) AND (calculationdate = (sit_5.transactiontime)::date) AND (storeid = sit_5.storeid))
83. 0.000 0.000 ↓ 0.0 0

Index Only Scan using userstorepermission_storeid_tenantuserid_uq on userstorepermission usp_7 (cost=0.27..0.29 rows=1 width=16) (never executed)

  • Index Cond: ((storeid = dt_3.storeid) AND (tenantuserid = 'e8dd09bb-cf41-4601-84de-78ff81618612'::uuid))
  • Heap Fetches: 0