explain.depesz.com

A tool for finding a real cause for slow queries.

Result: 3KQ : price_tiers

options
Did it help? Consider supporting us - Bitcoin address: 12v2hUztAk2LgzQ9H9LMwuU32urHMjZQnq
# exclusive inclusive rows x rows loops node
1. 293.186 3,279.419 ↓ 239,988.0 239,988 1

Hash Join (cost=41,263.20..43,879.28 rows=1 width=1,596) (actual time=2,669.416..3,279.419 rows=239,988 loops=1)

  • Output: r.id, r.schedule_key, sr.account_id, sr.effective_date, public.price_tier.energy_price, public.price_tier.delivery_price, COALESCE(public.price_tier.consumption_from, ((public.price_tier.consumption_percentage_from * r.consumption_baseline) / 100)), public.price_tier.label
  • Hash Cond: ((sr.schedule_id = r.schedule_id) AND ((r.schedule_key)::text = (r.rate_key)::text) AND ((sr.account_id)::text = (r.account_id)::text))
2. 82.434 2,579.283 ↓ 92.1 239,988 1

Hash Join (cost=40,540.93..43,127.67 rows=2,606 width=1,596) (actual time=2,262.306..2,579.283 rows=239,988 loops=1)

  • Output: r.id, r.schedule_key, sr.account_id, sr.effective_date, sr.schedule_id, public.price_tier.energy_price, public.price_tier.delivery_price, public.price_tier.consumption_from, public.price_tier.consumption_percentage_from, public.price_tier.label
  • Hash Cond: (r.id = public.price_tier.rate_id)
3. 81.323 2,496.826 ↓ 39.9 159,992 1

Unique (cost=40,528.00..43,033.56 rows=4,009 width=1,180) (actual time=2,262.241..2,496.826 rows=159,992 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (((NULL::bigint))::numeric), (((NULL::bigint))::numeric), ('IBR'::text), r.schedule_rates_id
4. 81.554 2,415.503 ↓ 4.0 159,992 1

Unique (cost=40,528.00..41,630.45 rows=40,089 width=812) (actual time=2,262.239..2,415.503 rows=159,992 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (((NULL::bigint))::numeric), (((NULL::bigint))::numeric), ('IBR'::text), r.schedule_rates_id
5. 1,506.495 2,333.949 ↓ 4.0 159,992 1

Sort (cost=40,528.00..40,628.22 rows=40,089 width=812) (actual time=2,262.238..2,333.949 rows=159,992 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (((NULL::bigint))::numeric), (((NULL::bigint))::numeric), ('IBR'::text), r.schedule_rates_id
  • Sort Key: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (((NULL::bigint))::numeric), (((NULL::bigint))::numeric), ('IBR'::text), r.schedule_rates_id
  • Sort Method: external merge Disk: 9960kB
6. 12.790 827.454 ↓ 4.0 159,992 1

Append (cost=7,238.46..8,686.01 rows=40,089 width=812) (actual time=673.300..827.454 rows=159,992 loops=1)

7. 18.602 769.527 ↓ 4.0 79,996 1

Result (cost=7,238.46..7,790.63 rows=20,079 width=543) (actual time=673.298..769.527 rows=79,996 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (NULL::bigint), (NULL::bigint), ('IBR'::text), r.schedule_rates_id
8. 30.692 750.925 ↓ 4.0 79,996 1

Unique (cost=7,238.46..7,790.63 rows=20,079 width=543) (actual time=673.289..750.925 rows=79,996 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (NULL::bigint), (NULL::bigint), ('IBR'::text), r.schedule_rates_id
9. 685.703 720.233 ↓ 4.0 79,996 1

Sort (cost=7,238.46..7,288.65 rows=20,079 width=543) (actual time=673.286..720.233 rows=79,996 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (NULL::bigint), (NULL::bigint), ('IBR'::text), r.schedule_rates_id
  • Sort Key: r.id, sr.schedule_id, r.schedule_key, sr.account_id, (NULL::text), sr.effective_date, (NULL::bigint), (NULL::bigint), ('IBR'::text), r.schedule_rates_id
  • Sort Method: external merge Disk: 3912kB
10. 5.586 34.530 ↓ 4.0 79,996 1

Append (cost=25.07..927.97 rows=20,079 width=543) (actual time=0.093..34.530 rows=79,996 loops=1)

11. 0.009 0.015 ↓ 0.0 0 1

Hash Join (cost=25.07..37.56 rows=70 width=1,052) (actual time=0.015..0.015 rows=0 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, NULL::text, sr.effective_date, NULL::bigint, NULL::bigint, 'IBR'::text, r.schedule_rates_id
  • Hash Cond: (p.rate_id = r.id)
12. 0.002 0.002 ↑ 130.0 1 1

Seq Scan on price_tier p (cost=0.00..11.30 rows=130 width=4) (actual time=0.002..0.002 rows=1 loops=1)

  • Output: p.id, p.version, p.rate_id, p.energy_price, p.delivery_price, p.created_at, p.label, p.consumption_from, p.consumption_percentage_from
  • Filter: ((consumption_from IS NOT NULL) OR (consumption_percentage_from IS NOT NULL))
13. 0.000 0.004 ↓ 0.0 0 1

Hash (cost=24.20..24.20 rows=70 width=1,052) (actual time=0.004..0.004 rows=0 loops=1)

  • Output: r.id, r.schedule_key, r.schedule_rates_id, sr.schedule_id, sr.account_id, sr.effective_date
14. 0.000 0.004 ↓ 0.0 0 1

Hash Join (cost=11.57..24.20 rows=70 width=1,052) (actual time=0.004..0.004 rows=0 loops=1)

  • Output: r.id, r.schedule_key, r.schedule_rates_id, sr.schedule_id, sr.account_id, sr.effective_date
  • Hash Cond: (sr.id = r.schedule_rates_id)
15. 0.004 0.004 ↓ 0.0 0 1

Seq Scan on schedule_rates sr (cost=0.00..11.40 rows=139 width=532) (actual time=0.004..0.004 rows=0 loops=1)

  • Output: sr.id, sr.version, sr.account_id, sr.schedule_id, sr.effective_date, sr.created_at, sr.consumption_baseline
  • Filter: (account_id IS NOT NULL)
16. 0.000 0.000 ↓ 0.0 0

Hash (cost=10.70..10.70 rows=70 width=524) (actual time=.. rows= loops=0)

  • Output: r.id, r.schedule_key, r.schedule_rates_id
17. 0.000 0.000 ↓ 0.0 0

Seq Scan on rate r (cost=0.00..10.70 rows=70 width=524) (actual time=.. rows= loops=0)

  • Output: r.id, r.schedule_key, r.schedule_rates_id
18. 19.382 28.929 ↓ 4.0 79,996 1

Nested Loop (cost=11.62..689.62 rows=20,009 width=541) (actual time=0.077..28.929 rows=79,996 loops=1)

  • Output: r.id, schedule_rates.schedule_id, r.schedule_key, ppe.account_id, NULL::text, schedule_rates.effective_date, NULL::bigint, NULL::bigint, 'IBR'::text, r.schedule_rates_id
  • Join Filter: (s.pricing_program_id = ppe.pricing_program_id)
19. 0.022 0.219 ↓ 4.0 4 1

Nested Loop (cost=11.62..33.42 rows=1 width=540) (actual time=0.063..0.219 rows=4 loops=1)

  • Output: r.id, r.schedule_key, r.schedule_rates_id, schedule_rates.schedule_id, schedule_rates.effective_date, s.pricing_program_id
  • Join Filter: (r.id = public.price_tier.rate_id)
20. 0.025 0.170 ↓ 9.0 9 1

Nested Loop (cost=0.00..17.57 rows=1 width=540) (actual time=0.032..0.170 rows=9 loops=1)

  • Output: r.id, r.schedule_key, r.schedule_rates_id, schedule_rates.schedule_id, schedule_rates.effective_date, s.pricing_program_id
21. 0.055 0.091 ↓ 9.0 9 1

Nested Loop (cost=0.00..9.29 rows=1 width=20) (actual time=0.025..0.091 rows=9 loops=1)

  • Output: schedule_rates.schedule_id, schedule_rates.effective_date, schedule_rates.id, s.pricing_program_id
  • Join Filter: (schedule_rates.schedule_id = s.id)
22. 0.018 0.018 ↓ 9.0 9 1

Index Scan using schedule_rates_account_id_index on schedule_rates (cost=0.00..8.27 rows=1 width=16) (actual time=0.009..0.018 rows=9 loops=1)

  • Output: schedule_rates.id, schedule_rates.version, schedule_rates.account_id, schedule_rates.schedule_id, schedule_rates.effective_date, schedule_rates.created_at, schedule_rates.consumption_baseline
  • Index Cond: (account_id IS NULL)
23. 0.018 0.018 ↓ 9.0 9 9

Seq Scan on schedule s (cost=0.00..1.01 rows=1 width=8) (actual time=0.001..0.002 rows=9 loops=9)

  • Output: s.id, s.version, s.name, s.effective_date, s.pricing_program_id, s.created_at, s.switch_point_resource, s.switch_point_content
24. 0.054 0.054 ↑ 1.0 1 9

Index Scan using rate_schedule_rates_id_key on rate r (cost=0.00..8.27 rows=1 width=524) (actual time=0.004..0.006 rows=1 loops=9)

  • Output: r.id, r.version, r.schedule_key, r.label, r.schedule_rates_id, r.created_at
  • Index Cond: (r.schedule_rates_id = schedule_rates.id)
25. 0.024 0.027 ↑ 32.5 4 9

HashAggregate (cost=11.62..12.93 rows=130 width=4) (actual time=0.002..0.003 rows=4 loops=9)

  • Output: public.price_tier.rate_id
26. 0.003 0.003 ↑ 10.8 12 1

Seq Scan on price_tier (cost=0.00..11.30 rows=130 width=4) (actual time=0.002..0.003 rows=12 loops=1)

  • Output: public.price_tier.rate_id
  • Filter: ((consumption_from IS NOT NULL) OR (consumption_percentage_from IS NOT NULL))
27. 9.328 9.328 ↑ 1.0 19,999 4

Seq Scan on pricing_program_enrollment ppe (cost=0.00..406.09 rows=20,009 width=9) (actual time=0.005..2.332 rows=19,999 loops=4)

  • Output: ppe.account_id, ppe.pricing_program_id, ppe.effective_date, ppe.created_at, ppe.time_zone, ppe.pricing_program_enrollment_id, ppe.synthetic
28. 0.000 0.047 ↓ 0.0 0 1

Subquery Scan "*SELECT* 3" (cost=0.00..20.56 rows=1 width=1,592) (actual time=0.047..0.047 rows=0 loops=1)

  • Output: "*SELECT* 3".rid, "*SELECT* 3".schedule_id, "*SELECT* 3".rate_key, "*SELECT* 3".account_id, "*SELECT* 3".label, "*SELECT* 3".effective_date, "*SELECT* 3".energy_price, "*SELECT* 3".delivery_price, 'SIMPLE'::text, "*SELECT* 3".group_order
29. 0.003 0.047 ↓ 0.0 0 1

Nested Loop (cost=0.00..20.55 rows=1 width=1,592) (actual time=0.047..0.047 rows=0 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, sr.account_id, p.label, sr.effective_date, p.energy_price, p.delivery_price, 'SIMPLE'::text, r.schedule_rates_id
30. 0.006 0.034 ↓ 5.0 5 1

Nested Loop (cost=0.00..19.58 rows=1 width=1,064) (actual time=0.027..0.034 rows=5 loops=1)

  • Output: p.label, p.energy_price, p.delivery_price, r.id, r.schedule_key, r.schedule_rates_id
31. 0.013 0.013 ↓ 5.0 5 1

Seq Scan on price_tier p (cost=0.00..11.30 rows=1 width=544) (actual time=0.012..0.013 rows=5 loops=1)

  • Output: p.id, p.version, p.rate_id, p.energy_price, p.delivery_price, p.created_at, p.label, p.consumption_from, p.consumption_percentage_from
  • Filter: ((consumption_from IS NULL) AND (consumption_percentage_from IS NULL))
32. 0.015 0.015 ↑ 1.0 1 5

Index Scan using rate_pk on rate r (cost=0.00..8.27 rows=1 width=524) (actual time=0.003..0.003 rows=1 loops=5)

  • Output: r.id, r.version, r.schedule_key, r.label, r.schedule_rates_id, r.created_at
  • Index Cond: (r.id = p.rate_id)
33. 0.010 0.010 ↓ 0.0 0 5

Index Scan using schedule_rates_pk on schedule_rates sr (cost=0.00..0.95 rows=1 width=532) (actual time=0.002..0.002 rows=0 loops=5)

  • Output: sr.id, sr.version, sr.account_id, sr.schedule_id, sr.effective_date, sr.created_at, sr.consumption_baseline
  • Index Cond: (sr.id = r.schedule_rates_id)
  • Filter: (sr.account_id IS NOT NULL)
34. 13.707 45.090 ↓ 4.0 79,996 1

Subquery Scan "*SELECT* 4" (cost=0.00..874.83 rows=20,009 width=1,081) (actual time=0.038..45.090 rows=79,996 loops=1)

  • Output: "*SELECT* 4".rid, "*SELECT* 4".schedule_id, "*SELECT* 4".rate_key, "*SELECT* 4".account_id, "*SELECT* 4".label, "*SELECT* 4".effective_date, "*SELECT* 4".energy_price, "*SELECT* 4".delivery_price, 'SIMPLE'::text, "*SELECT* 4".group_order
35. 19.182 31.383 ↓ 4.0 79,996 1

Nested Loop (cost=0.00..674.74 rows=20,009 width=1,081) (actual time=0.035..31.383 rows=79,996 loops=1)

  • Output: r.id, sr.schedule_id, r.schedule_key, ppe.account_id, public.price_tier.label, sr.effective_date, public.price_tier.energy_price, public.price_tier.delivery_price, 'SIMPLE'::text, r.schedule_rates_id
  • Join Filter: (s.pricing_program_id = ppe.pricing_program_id)
36. 0.017 0.216 ↓ 5.0 5 1

Nested Loop (cost=0.00..18.54 rows=1 width=1,080) (actual time=0.027..0.216 rows=5 loops=1)

  • Output: public.price_tier.label, public.price_tier.energy_price, public.price_tier.delivery_price, r.id, r.schedule_key, r.schedule_rates_id, sr.schedule_id, sr.effective_date, s.pricing_program_id
37. 0.018 0.154 ↓ 9.0 9 1

Nested Loop (cost=0.00..17.57 rows=1 width=540) (actual time=0.021..0.154 rows=9 loops=1)

  • Output: sr.schedule_id, sr.effective_date, s.pricing_program_id, r.id, r.schedule_key, r.schedule_rates_id
38. 0.060 0.091 ↓ 9.0 9 1

Nested Loop (cost=0.00..9.29 rows=1 width=20) (actual time=0.016..0.091 rows=9 loops=1)

  • Output: sr.schedule_id, sr.effective_date, sr.id, s.pricing_program_id
  • Join Filter: (sr.schedule_id = s.id)
39. 0.013 0.013 ↓ 9.0 9 1

Index Scan using schedule_rates_account_id_index on schedule_rates sr (cost=0.00..8.27 rows=1 width=16) (actual time=0.003..0.013 rows=9 loops=1)

  • Output: sr.id, sr.version, sr.account_id, sr.schedule_id, sr.effective_date, sr.created_at, sr.consumption_baseline
  • Index Cond: (account_id IS NULL)
40. 0.018 0.018 ↓ 9.0 9 9

Seq Scan on schedule s (cost=0.00..1.01 rows=1 width=8) (actual time=0.001..0.002 rows=9 loops=9)

  • Output: s.id, s.version, s.name, s.effective_date, s.pricing_program_id, s.created_at, s.switch_point_resource, s.switch_point_content
41. 0.045 0.045 ↑ 1.0 1 9

Index Scan using rate_schedule_rates_id_key on rate r (cost=0.00..8.27 rows=1 width=524) (actual time=0.004..0.005 rows=1 loops=9)

  • Output: r.id, r.version, r.schedule_key, r.label, r.schedule_rates_id, r.created_at
  • Index Cond: (r.schedule_rates_id = sr.id)
42. 0.045 0.045 ↑ 1.0 1 9

Index Scan using price_tier_rate_id_index on price_tier (cost=0.00..0.95 rows=1 width=544) (actual time=0.003..0.005 rows=1 loops=9)

  • Output: public.price_tier.id, public.price_tier.version, public.price_tier.rate_id, public.price_tier.energy_price, public.price_tier.delivery_price, public.price_tier.created_at, public.price_tier.label, public.price_tier.consumption_from, public.price_tier.consumption_percentage_from
  • Index Cond: (public.price_tier.rate_id = r.id)
  • Filter: ((public.price_tier.consumption_from IS NULL) AND (public.price_tier.consumption_percentage_from IS NULL))
43. 11.985 11.985 ↑ 1.0 19,999 5

Seq Scan on pricing_program_enrollment ppe (cost=0.00..406.09 rows=20,009 width=9) (actual time=0.005..2.397 rows=19,999 loops=5)

  • Output: ppe.account_id, ppe.pricing_program_id, ppe.effective_date, ppe.created_at, ppe.time_zone, ppe.pricing_program_enrollment_id, ppe.synthetic
44. 0.006 0.023 ↑ 10.8 12 1

Hash (cost=11.30..11.30 rows=130 width=552) (actual time=0.023..0.023 rows=12 loops=1)

  • Output: public.price_tier.energy_price, public.price_tier.delivery_price, public.price_tier.consumption_from, public.price_tier.consumption_percentage_from, public.price_tier.label, public.price_tier.rate_id
45. 0.017 0.017 ↑ 10.8 12 1

Seq Scan on price_tier (cost=0.00..11.30 rows=130 width=552) (actual time=0.014..0.017 rows=12 loops=1)

  • Output: public.price_tier.energy_price, public.price_tier.delivery_price, public.price_tier.consumption_from, public.price_tier.consumption_percentage_from, public.price_tier.label, public.price_tier.rate_id
  • Filter: ((consumption_percentage_from IS NOT NULL) OR (consumption_from IS NOT NULL))
46. 52.315 406.950 ↓ 159,992.0 159,992 1

Hash (cost=722.25..722.25 rows=1 width=1,040) (actual time=406.950..406.950 rows=159,992 loops=1)

  • Output: r.consumption_baseline, r.schedule_id, r.rate_key, r.account_id
47. 15.929 354.635 ↓ 159,992.0 159,992 1

Subquery Scan r (cost=722.23..722.25 rows=1 width=1,040) (actual time=262.521..354.635 rows=159,992 loops=1)

  • Output: r.consumption_baseline, r.schedule_id, r.rate_key, r.account_id
48. 204.599 338.706 ↓ 159,992.0 159,992 1

HashAggregate (cost=722.23..722.24 rows=1 width=1,050) (actual time=262.519..338.706 rows=159,992 loops=1)

  • Output: sr.schedule_id, r.schedule_key, ppe.account_id, r.label, ppe.pricing_program_id, sr.consumption_baseline, g.peak
49. 75.397 134.107 ↓ 159,992.0 159,992 1

Nested Loop Left Join (cost=37.88..722.22 rows=1 width=1,050) (actual time=11.064..134.107 rows=159,992 loops=1)

  • Output: sr.schedule_id, r.schedule_key, ppe.account_id, r.label, ppe.pricing_program_id, sr.consumption_baseline, g.peak
  • Join Filter: ((ppe.pricing_program_id = g.pricing_program_id) AND ((r.schedule_key)::text = (rk.rate_key)::text))
50. 36.738 58.710 ↓ 159,992.0 159,992 1

Nested Loop (cost=24.73..693.64 rows=1 width=1,049) (actual time=11.058..58.710 rows=159,992 loops=1)

  • Output: r.schedule_key, r.label, ppe.account_id, ppe.pricing_program_id, sr.schedule_id, sr.consumption_baseline
  • Join Filter: (s.pricing_program_id = ppe.pricing_program_id)
51. 0.056 0.381 ↓ 9.0 9 1

Nested Loop (cost=24.73..37.44 rows=1 width=1,044) (actual time=0.091..0.381 rows=9 loops=1)

  • Output: r.schedule_key, r.label, s.pricing_program_id, sr.schedule_id, sr.consumption_baseline
  • Join Filter: ((sr.schedule_id = sr.schedule_id) AND ((r.schedule_key)::text = (r2.schedule_key)::text) AND (sr.effective_date = (max(sr.effective_date))))
52. 0.023 0.226 ↓ 9.0 9 1

Nested Loop (cost=0.00..9.91 rows=1 width=1,056) (actual time=0.033..0.226 rows=9 loops=1)

  • Output: r.schedule_key, r.label, sr.schedule_id, sr.consumption_baseline, sr.effective_date, s.id, s.pricing_program_id
53. 0.033 0.140 ↓ 9.0 9 1

Nested Loop (cost=0.00..9.29 rows=1 width=28) (actual time=0.028..0.140 rows=9 loops=1)

  • Output: sr.schedule_id, sr.consumption_baseline, sr.id, sr.effective_date, s.id, s.pricing_program_id
54. 0.017 0.017 ↓ 9.0 9 1

Seq Scan on schedule s (cost=0.00..1.01 rows=1 width=8) (actual time=0.010..0.017 rows=9 loops=1)

  • Output: s.id, s.version, s.name, s.effective_date, s.pricing_program_id, s.created_at, s.switch_point_resource, s.switch_point_content
55. 0.090 0.090 ↑ 1.0 1 9

Index Scan using schedule_rates_schedule_id_index on schedule_rates sr (cost=0.00..8.27 rows=1 width=20) (actual time=0.009..0.010 rows=1 loops=9)

  • Output: sr.id, sr.version, sr.account_id, sr.schedule_id, sr.effective_date, sr.created_at, sr.consumption_baseline
  • Index Cond: (sr.schedule_id = s.id)
56. 0.063 0.063 ↑ 1.0 1 9

Index Scan using rate_schedule_rates_id_key on rate r (cost=0.00..0.61 rows=1 width=1,036) (actual time=0.003..0.007 rows=1 loops=9)

  • Output: r.id, r.version, r.schedule_key, r.label, r.schedule_rates_id, r.created_at
  • Index Cond: (r.schedule_rates_id = sr.id)
57. 0.063 0.099 ↑ 7.8 9 9

HashAggregate (cost=24.73..25.60 rows=70 width=528) (actual time=0.006..0.011 rows=9 loops=9)

  • Output: max(sr.effective_date), sr.schedule_id, r2.schedule_key
58. 0.017 0.036 ↑ 7.8 9 1

Hash Join (cost=11.57..24.20 rows=70 width=528) (actual time=0.026..0.036 rows=9 loops=1)

  • Output: sr.effective_date, sr.schedule_id, r2.schedule_key
  • Hash Cond: (sr.id = r2.schedule_rates_id)
59. 0.006 0.006 ↑ 15.6 9 1

Seq Scan on schedule_rates sr (cost=0.00..11.40 rows=140 width=16) (actual time=0.002..0.006 rows=9 loops=1)

  • Output: sr.id, sr.version, sr.account_id, sr.schedule_id, sr.effective_date, sr.created_at, sr.consumption_baseline
60. 0.007 0.013 ↑ 7.8 9 1

Hash (cost=10.70..10.70 rows=70 width=520) (actual time=0.013..0.013 rows=9 loops=1)

  • Output: r2.schedule_key, r2.schedule_rates_id
61. 0.006 0.006 ↑ 7.8 9 1

Seq Scan on rate r2 (cost=0.00..10.70 rows=70 width=520) (actual time=0.002..0.006 rows=9 loops=1)

  • Output: r2.schedule_key, r2.schedule_rates_id
62. 21.591 21.591 ↑ 1.0 19,999 9

Seq Scan on pricing_program_enrollment ppe (cost=0.00..406.09 rows=20,009 width=9) (actual time=0.005..2.399 rows=19,999 loops=9)

  • Output: ppe.account_id, ppe.pricing_program_id, ppe.effective_date, ppe.created_at, ppe.time_zone, ppe.pricing_program_enrollment_id, ppe.synthetic
63. 0.000 0.000 ↓ 0.0 0 159,992

Hash Join (cost=13.15..26.48 rows=140 width=521) (actual time=0.000..0.000 rows=0 loops=159,992)

  • Output: rk.rate_key, g.peak, g.pricing_program_id
  • Hash Cond: (rk.rate_group_id = g.id)
64. 0.000 0.000 ↓ 0.0 0 159,992

Seq Scan on rate_group_ratekeys rk (cost=0.00..11.40 rows=140 width=520) (actual time=0.000..0.000 rows=0 loops=159,992)

  • Output: rk.rate_group_id, rk.rate_key
65. 0.000 0.000 ↓ 0.0 0

Hash (cost=11.40..11.40 rows=140 width=9) (actual time=.. rows= loops=0)

  • Output: g.peak, g.id, g.pricing_program_id
66. 0.000 0.000 ↓ 0.0 0

Seq Scan on rate_group g (cost=0.00..11.40 rows=140 width=9) (actual time=.. rows= loops=0)

  • Output: g.peak, g.id, g.pricing_program_id