合 Greenplum中的参数gp_segments_for_planner介绍-- 影响广播或重分布distribute决策
Tags: GreenPlum参数重分布广播(Broadcast Motion)gp_segments_for_planner重分布(Redistribute Motion)
简介
参数gp_segments_for_planner设置Postgres查询优化器(planner)在其成本和大小估计中假设的primary实例数。 如果为0,则使用的值是primary的实际数量。 此变量影响Postgres优化器对Motion运算符中每个发送和接收过程处理的行数的估计。
当解释计划显示具有大量行的广播运动时,您应该尝试消除广播运动。
一种方法是使用gp_segments_for_planner配置参数增加移动数据的估计代价。
该变量告诉优化器在计算移动代价时使用多少个Segments。默认值是0,意味着使用实际Segment个数。增大这个数字,移动的代价会跟着增大,优化器会优先使用
分发移动操作符。 增加主段的数量会增加运动的成本,从而有利于重分配运动而不是广播运动。 例如设置gp_segments_for_planner=100000 告诉优化器有100000个Segments。
反过来,要影响规划器广播表而不是重新分布它,可以把gp_segments_for_planner设置为一个较低的值,例如2。
总结
1、参数gp_segments_for_planner默认为0,表示使用实际的segment个数。