微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么GPDB在成本估算中不考虑段数

如何解决为什么GPDB在成本估算中不考虑段数

无论什么版本的GPDB开源代码,在成本评估中都没有考虑segment的数量,只在将explain结果返回给QD时做一个简单的处理,使结果更加清晰。

解决方法

在 Greenplum 中,您的查询在所有段上并行执行,因此所有段都会产生成本。然而,将成本数乘以段数似乎没有帮助,这将在不同的 Greenplum 集群上为您提供具有不同成本数的相同查询计划。

,

实际上,Greenplum 在规划时使用了段数。 Stats 信息存储在 master 中,Greenplum 将使用此全局信息来推断每个段本地的 stats。

下面列出了一些示例:

  1. 函数 adjust_reloptinfo(大上下文请参考 PR:https://github.com/greenplum-db/gpdb/pull/10676
  2. 函数 estimate_num_groups_on_segment 是在给定集群大小和全局不同数量的情况下估计局部不同值
  3. Motion 的成本模型考虑了集群大小:cdbpath_cost_motion
  4. ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。