explain.depesz.com

PostgreSQL's explain analyze made readable

Result: SqS0

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

Hash Left Join (cost=5,265,910.81..10,971,227.26 rows=1,031,150 width=1,220) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.latest_weekly_period_dt = t_shr_f_postal.period_dt) AND ((t_bm_d_base_dly.postal_cd)::text = (t_shr_f_postal.postal_cd)::text))
2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=5,210,824.53..10,898,251.56 rows=1,031,150 width=1,218) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=5,210,824.10..9,830,185.41 rows=1,031,150 width=1,176) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=5,210,823.66..8,734,078.06 rows=1,031,150 width=1,128) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=5,210,823.23..7,444,152.91 rows=1,031,150 width=1,006) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=5,210,822.79..6,383,623.43 rows=1,031,150 width=812) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.period_dt = t_bm_f_usage_notif_dly.period_dt) AND ((t_bm_d_base_dly.src_sub_no)::text = (t_bm_f_usage_notif_dly.src_sub_no)::text))
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=5,036,483.07..6,185,988.90 rows=1,031,150 width=800) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.latest_weekly_period_dt = t_bm_s_ban_rev.period_dt) AND ((t_bm_d_base_dly.src_ban)::text = (t_bm_s_ban_rev.src_ban)::text))
8. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=4,607,785.57..5,435,412.90 rows=1,031,150 width=671) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.latest_weekly_period_dt = t_bm_s_ban_usg.period_dt) AND ((t_bm_d_base_dly.src_ban)::text = (t_bm_s_ban_usg.src_ban)::text))
9. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=4,174,308.27..4,713,758.10 rows=1,031,150 width=556) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.latest_weekly_period_dt = t_bm_s_ban_hw.period_dt) AND ((t_bm_d_base_dly.src_ban)::text = (t_bm_s_ban_hw.src_ban)::text))
10. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=3,838,498.37..4,138,955.70 rows=1,031,150 width=489) (actual rows= loops=)

  • Hash Cond: ((t_bm_s_sub_preds.period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((t_bm_s_sub_preds.src_sub_no)::text = (t_bm_d_base_dly.src_sub_no)::text))
11. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_s_sub_preds (cost=0.00..214,779.27 rows=10,049,427 width=49) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash (cost=3,823,031.12..3,823,031.12 rows=1,031,150 width=453) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=2,529,668.76..3,823,031.12 rows=1,031,150 width=453) (actual rows= loops=)

  • Hash Cond: ((t_bm_d_base_dly.latest_weekly_period_dt = t_bm_f_ban_brs.period_dt) AND ((t_bm_d_base_dly.src_ban)::text = (t_bm_f_ban_brs.src_ban)::text))
14. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=2,455,151.33..3,730,468.57 rows=1,031,150 width=443) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_sub_cust_exprnc.period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((t_bm_f_sub_cust_exprnc.src_sub_no)::text = (t_bm_d_base_dly.src_sub
15. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_sub_cust_exprnc (cost=0.00..1,189,666.37 rows=10,046,237 width=149) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Hash (cost=2,439,684.08..2,439,684.08 rows=1,031,150 width=307) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=1,651,912.27..2,439,684.08 rows=1,031,150 width=307) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_sub_base.period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((t_bm_f_sub_base.src_sub_no)::text = (t_bm_d_base_dly.src_sub_n
18. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_sub_base (cost=0.00..702,105.03 rows=10,048,103 width=81) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Hash (cost=1,636,445.02..1,636,445.02 rows=1,031,150 width=239) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=1,320,240.85..1,636,445.02 rows=1,031,150 width=239) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_rvue_dly.period_dt = t_bm_d_base_dly.period_dt) AND ((t_bm_f_rvue_dly.src_sub_no)::text = (t_bm_d_base_dly.src_sub_no)
21. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_rvue_dly (cost=0.00..231,807.40 rows=9,899,140 width=36) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Hash (cost=1,304,773.60..1,304,773.60 rows=1,031,150 width=216) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=1,016,172.93..1,304,773.60 rows=1,031,150 width=216) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_campaign_dly.period_dt = t_bm_d_base_dly.period_dt) AND ((t_bm_f_campaign_dly.src_sub_no)::text = (t_bm_d_
24. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_campaign_dly (cost=0.00..203,678.57 rows=9,960,757 width=33) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Hash (cost=1,000,705.68..1,000,705.68 rows=1,031,150 width=196) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=741,130.97..1,000,705.68 rows=1,031,150 width=196) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_usage_dly.period_dt = t_bm_d_base_dly.period_dt) AND ((t_bm_f_usage_dly.src_sub_no)::text = (t
27. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_usage_dly (cost=0.00..192,863.50 rows=7,824,750 width=35) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=725,663.72..725,663.72 rows=1,031,150 width=174) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=593,123.78..725,663.72 rows=1,031,150 width=174) (actual rows= loops=)

  • Hash Cond: ((t_bm_f_exprnc_dly.period_dt = t_bm_d_base_dly.period_dt) AND ((t_bm_f_exprnc_dly.src_sub_
30. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_exprnc_dly (cost=0.00..92,241.36 rows=4,726,736 width=25) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Hash (cost=577,656.53..577,656.53 rows=1,031,150 width=162) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on t_bm_d_base_dly (cost=11,102.65..577,656.53 rows=1,031,150 width=162) (actual rows= loops=)

  • Recheck Cond: ("right"((src_sub_no)::text, 1) = '0'::text)
  • -> Bitmap Index Scan on i_t_bm_d_base_dly_sub_lst (cost=0.00..10844.86 rows=1031150 widt
  • Index Cond: ("right"((src_sub_no)::text, 1) = '0'::text)
33. 0.000 0.000 ↓ 0.0

Hash (cost=58,681.97..58,681.97 rows=1,055,697 width=24) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_ban_brs (cost=0.00..58,681.97 rows=1,055,697 width=24) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Hash (cost=174,015.56..174,015.56 rows=5,642,956 width=81) (actual rows= loops=)

36. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_s_ban_hw (cost=0.00..174,015.56 rows=5,642,956 width=81) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Hash (cost=238,603.72..238,603.72 rows=5,643,372 width=129) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_s_ban_usg (cost=0.00..238,603.72 rows=5,643,372 width=129) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Hash (cost=228,323.00..228,323.00 rows=5,643,100 width=143) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_s_ban_rev (cost=0.00..228,323.00 rows=5,643,100 width=143) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Hash (cost=97,565.09..97,565.09 rows=5,118,309 width=29) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

Seq Scan on t_bm_f_usage_notif_dly (cost=0.00..97,565.09 rows=5,118,309 width=29) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

Index Scan using i_t_bm_s_ban_segmentation on t_bm_s_ban_segmentation (cost=0.43..1.02 rows=1 width=218) (actual rows= loops=)

  • Index Cond: ((period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((src_ban)::text = (t_bm_d_base_dly.src_ban)::text))
44. 0.000 0.000 ↓ 0.0

Index Scan using i_t_bm_s_sub_rev on t_bm_s_sub_rev (cost=0.43..1.24 rows=1 width=135) (actual rows= loops=)

  • Index Cond: ((period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((src_sub_no)::text = (t_bm_d_base_dly.src_sub_no)::text))
45. 0.000 0.000 ↓ 0.0

Index Scan using i_t_bm_s_sub_segmentation on t_bm_s_sub_segmentation (cost=0.43..1.05 rows=1 width=61) (actual rows= loops=)

  • Index Cond: ((period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((src_sub_no)::text = (t_bm_d_base_dly.src_sub_no)::text))
46. 0.000 0.000 ↓ 0.0

Index Scan using i_t_bm_s_sub_usg on t_bm_s_sub_usg (cost=0.43..1.03 rows=1 width=55) (actual rows= loops=)

  • Index Cond: ((period_dt = t_bm_d_base_dly.latest_weekly_period_dt) AND ((src_sub_no)::text = (t_bm_d_base_dly.src_sub_no)::text))
47. 0.000 0.000 ↓ 0.0

Hash (cost=43,947.71..43,947.71 rows=742,571 width=22) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

Seq Scan on t_shr_f_postal (cost=0.00..43,947.71 rows=742,571 width=22) (actual rows= loops=)