开发者社区> 问答> 正文

OceanBase数据库这个是啥问题?

OceanBase数据库这个是啥问题?image.png

展开
收起
真的很搞笑 2024-01-02 19:35:58 60 0
来自:OceanBase
2 条回答
写回答
取消 提交回答
  • OceanBase数据库的fuse命中率过低(41.0%)可能是由多种因素导致的。一种可能的原因是plan cache分配资源过少,这可能导致plancache命中率降低。并发量大导致内存快速写满也可能会引发同样的问题。此外,业务量或会话增加,导致内存不足的情况也可能会导致planche命中率下降。

    另一种可能的原因是相似语句参数随机,这可能会导致计划缓存命中率降低。例如,通过主键去查找表里某一行具体的数据,如果主键在表中的每一个值都是不同的,那么它们都无法共享计划,每一个主键值都要重新生成一次计划,这就导致计划的命中率非常低。

    为了解决这个问题,你可以考虑优化你的SQL语句,使其更加高效。快速参数化就是解决这类问题的一种有效方法。同时,你也可以考虑增加plan cache的资源分配,以减少内存快速写满的可能性。对于业务量或会话增加导致的内存不足问题,你可能需要增加系统资源或优化你的业务流程来提高内存使用效率。

    2024-01-03 10:19:37
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    OceanBase数据库中fus命中率过低表示缓存命中率下降,可能会影响系统性能。命中率过低可能是由于plan cache分配资源过少、并发量大导致内存快速写满、业务量或会话增加,导致内存不足等情况引起的。SQL执行流程中,SQL发送到OBServer后,会先由OBServer对其进行快速参数化,参数化后的SQL进入Plan Cache尝试命中计划缓存。如果找到一个可以使用的计划,则直接将计划交由SQL的执行引擎去执行,并将执行完成后的结果返回给用户;如果没有找到可以使用的计划,则会重新为此SQL生成计划。

    要解决这个问题,首先需要定位业务性能问题,排除集群环境不稳定因素。OceanBase集群有强一致和高可用能力,其次才是高性能。用户容易理解高性能,可能不理解强一致和高可用背后的要付出的成本。如集群节点间要保持时间同步误差和网络延时最小。集群节点之间的网络延时太大、时间同步延时太大会影响集群的性能甚至稳定性。然后可以通过运行指定语句查看PLANCACHE命中率,例如:obclient > SELECT hit_count , executions , ( hit_count / executions ) as hit_ratio FROM V$OB_PLAN_CACHE_PLAN_STAT WHERE ( hit_count / executions ) < 0.9。根据查询结果,可以进一步优化配置或调整系统参数以提高命中率。

    2024-01-02 22:20:19
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载