如何通过hint 将分布式执行计划变为本地执行计划

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】2.2.77
【问题描述】通过hint 将分布式执行计划变为本地执行计划
【复现路径】
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

这个不可能吧。分布式是由于操作数据的leader节点决定的。执行计划能调整leader吗?

如果是查询的话指定弱读可以,但是如果对一致性有要求的查询或者是DML的话只能调整副本分布了

您好如果是分布式执行计划
1 如果架构是1-1-1,则可以将这个租户的primaryzone 都放在一个zone里,这样所有的leader 都在一个zone,一个obserer中
2 如果架构是2-2-2- ,primary zone 是多台服务器,则可以看看是否可以通过tablegroup都尽量在一个服务器上去计算

1 个赞

还要很特殊场景才可以吧,业务涉及的数据本身如果是多节点分布的,需要去多个节点关联计算才能得到结果,弱读一样解不了问题。

还是得考虑使用表组或者primary zone去解决问题。

嗯,要根据实际情况看了,如果3-3-3的架构弱读也没用的

分布式执行计划是由于你数据主副本分布在了多台机器上,如果你是分区表的话可以调整分区的主副本,如果你是多表关联查询的话你可以用表组的方式,把几个关联的表放在一个表组中,这样就可以避免跨机器的访问,hint是解决不了的