explain.depesz.com

PostgreSQL's explain analyze made readable

Result: nxT4

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

XN Subquery Scan outer_q (cost=11,173,016,881,844.84..11,173,477,922,456.06 rows=12,460,558 width=4,774) (actual rows= loops=)

  • Filter: (rn = 1)
2. 0.000 0.000 ↓ 0.0

XN Window (cost=11,173,016,881,844.84..11,173,446,771,063.41 rows=2,492,111,412 width=1,019) (actual rows= loops=)

  • Partition: dim_ab_customers.amazon_account_skey, dim_ab_customers.marketplace_id
  • Order: dim_ab_customers.business_registration_date
3. 0.000 0.000 ↓ 0.0

XN Sort (cost=11,173,016,881,844.84..11,173,023,112,123.37 rows=2,492,111,412 width=1,019) (actual rows= loops=)

  • Sort Key: dim_ab_customers.amazon_account_skey, dim_ab_customers.marketplace_id, dim_ab_customers.business_registration_date
4. 0.000 0.000 ↓ 0.0

XN Network (cost=6,196,260,839,020.80..10,172,627,929,027.47 rows=2,492,111,412 width=1,019) (actual rows= loops=)

  • Distribute
5. 0.000 0.000 ↓ 0.0

XN Hash Right Join DS_DIST_BOTH (cost=6,196,260,839,020.80..10,172,627,929,027.47 rows=2,492,111,412 width=1,019) (actual rows= loops=)

  • Outer Dist Key: rcr.comm_id
  • Inner Dist Key: hmd.comm_id
  • Hash Cond: (("outer".comm_id = "inner".comm_id) AND ("outer".marketplace_skey = "inner".marketplace_skey))
6. 0.000 0.000 ↓ 0.0

XN Subquery Scan rcr (cost=0.00..14,805,236.16 rows=197,534,998 width=112) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

XN Multi Scan (cost=0.00..12,829,886.18 rows=197,534,998 width=43) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_rcr_skill_na (cost=0.00..7,637,280.80 rows=156,601,742 width=41) (actual rows= loops=)

  • Filter: (comm_creation_datetime_utc >= '2019-01-01 00:00:00'::timestamp without time zone)
9. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_rcr_skill_fe (cost=0.00..620,792.80 rows=8,971,196 width=41) (actual rows= loops=)

  • Filter: (comm_creation_datetime_utc >= '2019-01-01 00:00:00'::timestamp without time zone)
10. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_rcr_skill_in (cost=0.00..2,568,719.80 rows=31,039,777 width=43) (actual rows= loops=)

  • Filter: (comm_creation_datetime_utc >= '2019-01-01 00:00:00'::timestamp without time zone)
11. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_rcr_skill_sa (cost=0.00..27,742.80 rows=922,283 width=41) (actual rows= loops=)

  • Filter: (comm_creation_datetime_utc >= '2019-01-01 00:00:00'::timestamp without time zone)
12. 0.000 0.000 ↓ 0.0

XN Hash (cost=6,196,260,836,497.59..6,196,260,836,497.59 rows=504,642 width=919) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

XN Hash Join DS_BCAST_INNER (cost=35,157,824.17..6,196,260,836,497.59 rows=504,642 width=919) (actual rows= loops=)

  • Hash Cond: ("outer".comm_id = "inner".comm_id)
14. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_OUTER (cost=498,310.22..6,195,122,070,588.27 rows=168,214 width=751) (actual rows= loops=)

  • Outer Dist Key: ("outer".business_account_skey)::text
  • Hash Cond: ("outer"."?column46?" = ("inner".business_account_id)::text)
15. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_INNER (cost=494,289.55..6,175,251,782,350.64 rows=168,214 width=747) (actual rows= loops=)

  • Inner Dist Key: dcrg.agent_sic4_skey
  • Hash Cond: (("outer".agent_sic4_skey = "inner".agent_sic4_skey) AND ("outer".agent_sic3_skey = "inner".agent_sic3_skey) AND ("outer".agent_sic2_skey = "inner".agent_sic2_skey) AND ("outer".agent_sic1_skey = "inner".agent_sic1_skey) AND ("outer".marketplace_skey = "inner".marketplace_skey))
16. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_OUTER (cost=492,872.59..6,173,748,663,772.20 rows=168,214 width=641) (actual rows= loops=)

  • Outer Dist Key: "outer".agent_sic4_skey
  • Hash Cond: ("outer".agent_sic4_skey = "inner".agent_sic_skey)
17. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_OUTER (cost=491,778.07..6,157,452,927,642.87 rows=168,214 width=610) (actual rows= loops=)

  • Outer Dist Key: "outer".agent_sic3_skey
  • Hash Cond: ("outer".agent_sic3_skey = "inner".agent_sic_skey)
18. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_OUTER (cost=490,683.56..6,141,998,261,513.54 rows=168,214 width=579) (actual rows= loops=)

  • Outer Dist Key: "outer".agent_sic2_skey
  • Hash Cond: ("outer".agent_sic2_skey = "inner".agent_sic_skey)
19. 0.000 0.000 ↓ 0.0

XN Hash Left Join DS_DIST_OUTER (cost=489,589.05..6,127,384,665,384.22 rows=168,214 width=548) (actual rows= loops=)

  • Outer Dist Key: "outer".agent_sic1_skey
  • Hash Cond: ("outer".agent_sic1_skey = "inner".agent_sic_skey)
20. 0.000 0.000 ↓ 0.0

XN Hash Join DS_DIST_BOTH (cost=488,494.54..6,113,507,005,504.89 rows=168,214 width=517) (actual rows= loops=)

  • Outer Dist Key: ("outer".customer_id)::numeric
  • Inner Dist Key: dim_ab_customers.amazon_account_skey
  • Hash Cond: (("outer"."?column32?" = "inner".amazon_account_skey) AND ("outer".marketplace_skey = "inner".marketplace_id))
  • Join Filter: ("outer".comm_creation_day_utc >= trunc("inner".business_registration_date))
21. 0.000 0.000 ↓ 0.0

XN Hash Join DS_BCAST_INNER (cost=619.98..39,700,159,107.12 rows=88,989,756 width=412) (actual rows= loops=)

  • Hash Cond: (("outer".routing_skill_skey = "inner".routing_skill_skey) AND ("outer".marketplace_skey = "inner".marketplace_skey))
22. 0.000 0.000 ↓ 0.0

XN Subquery Scan hmd (cost=0.00..11,380,566.28 rows=223,224,051 width=324) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

XN Multi Scan (cost=0.00..9,148,325.77 rows=223,224,051 width=133) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_hmd_na (cost=0.00..3,202,926.10 rows=107,364,704 width=133) (actual rows= loops=)

  • Filter: ((comm_creation_day_utc >= '2019-01-01 00:00:00'::timestamp without time zone) AND (customer_id > 1) AND ((owner_agent_login)::text <> 'drone'::text) AND ((owner_agent_login)::text <> 'cs-arf'::text))
25. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_hmd_fe (cost=0.00..482,989.36 rows=14,794,820 width=132) (actual rows= loops=)

  • Filter: ((comm_creation_day_utc >= '2019-01-01 00:00:00'::timestamp without time zone) AND (customer_id > 1) AND ((owner_agent_login)::text <> 'drone'::text) AND ((owner_agent_login)::text <> 'cs-arf'::text))
26. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_hmd_eu (cost=0.00..1,607,952.27 rows=52,838,129 width=133) (actual rows= loops=)

  • Filter: ((comm_creation_day_utc >= '2019-01-01 00:00:00'::timestamp without time zone) AND (customer_id > 1) AND ((owner_agent_login)::text <> 'drone'::text) AND ((owner_agent_login)::text <> 'cs-arf'::text))
27. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_hmd_in (cost=0.00..1,606,747.49 rows=47,657,954 width=133) (actual rows= loops=)

  • Filter: ((comm_creation_day_utc >= '2019-01-01 00:00:00'::timestamp without time zone) AND (customer_id > 1) AND ((owner_agent_login)::text <> 'drone'::text) AND ((owner_agent_login)::text <> 'cs-arf'::text))
28. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_hmd_sa (cost=0.00..15,470.05 rows=568,444 width=132) (actual rows= loops=)

  • Filter: ((comm_creation_day_utc >= '2019-01-01 00:00:00'::timestamp without time zone) AND (customer_id > 1) AND ((owner_agent_login)::text <> 'drone'::text) AND ((owner_agent_login)::text <> 'cs-arf'::text))
29. 0.000 0.000 ↓ 0.0

XN Hash (cost=413.32..413.32 rows=41,332 width=88) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_cs_routing_skills dcrs (cost=0.00..413.32 rows=41,332 width=88) (actual rows= loops=)

  • Filter: (cs_managed_name IS NOT NULL)
31. 0.000 0.000 ↓ 0.0

XN Hash (cost=425,522.97..425,522.97 rows=12,470,318 width=109) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_ab_customers (cost=0.00..425,522.97 rows=12,470,318 width=109) (actual rows= loops=)

  • Filter: (((is_active_now)::text = 'Y'::text) AND ((is_business_account_active)::text = 'Y'::text) AND (is_internal_business_account = 0))
33. 0.000 0.000 ↓ 0.0

XN Hash (cost=875.61..875.61 rows=87,561 width=35) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_agent_sic_all_nodes d1 (cost=0.00..875.61 rows=87,561 width=35) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

XN Hash (cost=875.61..875.61 rows=87,561 width=35) (actual rows= loops=)

36. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_agent_sic_all_nodes d2 (cost=0.00..875.61 rows=87,561 width=35) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

XN Hash (cost=875.61..875.61 rows=87,561 width=35) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_agent_sic_all_nodes d3 (cost=0.00..875.61 rows=87,561 width=35) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

XN Hash (cost=875.61..875.61 rows=87,561 width=35) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_agent_sic_all_nodes d4 (cost=0.00..875.61 rows=87,561 width=35) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

XN Hash (cost=629.76..629.76 rows=62,976 width=142) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

XN Seq Scan on dim_contact_reason_group dcrg (cost=0.00..629.76 rows=62,976 width=142) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

XN Hash (cost=3,216.54..3,216.54 rows=321,654 width=21) (actual rows= loops=)

44. 0.000 0.000 ↓ 0.0

XN Seq Scan on pbi_spend_dates pbi (cost=0.00..3,216.54 rows=321,654 width=21) (actual rows= loops=)

45. 0.000 0.000 ↓ 0.0

XN Hash (cost=34,659,512.45..34,659,512.45 rows=600 width=176) (actual rows= loops=)

46. 0.000 0.000 ↓ 0.0

XN Subquery Scan ct (cost=15,450,968.05..34,659,512.45 rows=600 width=176) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

XN Append (cost=15,450,968.05..34,659,506.45 rows=600 width=172) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

XN Subquery Scan "*SELECT* 1" (cost=15,450,968.05..15,450,974.55 rows=200 width=172) (actual rows= loops=)

49. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=15,450,968.05..15,450,972.55 rows=200 width=172) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

XN Subquery Scan volt_dt_3 (cost=13,742,324.41..14,674,311.85 rows=31,066,248 width=172) (actual rows= loops=)

51. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=13,742,324.41..14,363,649.37 rows=31,066,248 width=52) (actual rows= loops=)

52. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_contact_skill_na (cost=0.00..5,975,762.61 rows=310,662,472 width=52) (actual rows= loops=)

  • Filter: ((disconnect_day_lcl >= '2019-01-01 00:00:00'::timestamp without time zone) AND ((direction)::text = 'Inbound'::text))
53. 0.000 0.000 ↓ 0.0

XN Subquery Scan "*SELECT* 2" (cost=1,034,758.13..1,034,764.63 rows=200 width=172) (actual rows= loops=)

54. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=1,034,758.13..1,034,762.63 rows=200 width=172) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

XN Subquery Scan volt_dt_4 (cost=923,201.35..984,050.50 rows=2,028,305 width=172) (actual rows= loops=)

56. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=923,201.35..963,767.45 rows=2,028,305 width=52) (actual rows= loops=)

57. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_contact_skill_fe (cost=0.00..416,125.28 rows=20,283,043 width=52) (actual rows= loops=)

  • Filter: ((disconnect_day_lcl >= '2019-01-01 00:00:00'::timestamp without time zone) AND ((direction)::text = 'Inbound'::text))
58. 0.000 0.000 ↓ 0.0

XN Subquery Scan "*SELECT* 3" (cost=18,173,760.77..18,173,767.27 rows=200 width=172) (actual rows= loops=)

59. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=18,173,760.77..18,173,765.27 rows=200 width=172) (actual rows= loops=)

60. 0.000 0.000 ↓ 0.0

XN Subquery Scan volt_dt_5 (cost=16,178,926.01..17,267,017.70 rows=36,269,723 width=172) (actual rows= loops=)

61. 0.000 0.000 ↓ 0.0

XN HashAggregate (cost=16,178,926.01..16,904,320.47 rows=36,269,723 width=52) (actual rows= loops=)

62. 0.000 0.000 ↓ 0.0

XN Seq Scan on fact_contact_skill_eu (cost=0.00..7,111,495.41 rows=362,697,224 width=52) (actual rows= loops=)

  • Filter: ((disconnect_day_lcl >= '2019-01-01 00:00:00'::timestamp without time zone) AND ((direction)::text = 'Inbound'::text))