开发者社区 问答 正文

OceanBase数据库插入记录性能好慢,有什么办法吗?

7c58136cf41cc07aa76ac649bf70e2c7.png
69bd176af276c2af2595ac1830906f93.png
请参考上面图片 OceanBase数据库插入记录性能好慢,有什么办法吗?

展开
收起
乐天香橙派 2024-05-11 20:29:50 241 分享 版权
来自: OceanBase
阿里云 AI 助理回答

OceanBase 数据库插入记录性能变慢可能由多种原因引起,包括系统资源瓶颈、SQL 执行计划问题、租户内存不足等。以下是基于知识库资料的详细分析和解决方法:


一、排查性能瓶颈

  1. 查看租户事务监控数据

    • 检查 TPS(每秒事务提交数量)服务端每个事务平均处理时间,判断是否存在事务处理效率下降的情况。
    • 查看 每秒提交的事务日志数每秒提交的事务日志大小,确认是否存在日志写入瓶颈。
    • 检查 每秒事务锁等待次数每个锁等待平均耗时,判断是否存在锁争用问题。
  2. 查看租户性能与 SQL 监控数据

    • 检查 平均每秒处理 SQL 语句数响应时间,确认是否存在 SQL 执行效率下降。
    • 查看 会话数活跃会话数,判断是否存在会话过多导致的资源竞争。
    • 检查 慢 SQL 数量,定位是否存在执行效率低下的 SQL 语句。
  3. 检查租户内存使用率

    • 如果租户内存使用率超过默认阈值(85%),可能会导致性能下降。可以通过告警信息确认是否存在内存超限问题。
  4. 检查集群主机性能监控

    • 在集群监控页面中,切换到 集群主机,查看 CPU、内存、磁盘 I/O 等主机性能指标,确认是否存在硬件资源瓶颈。

二、优化 SQL 执行计划

  1. 刷新 PlanCache

    • 如果 SQL 执行计划生成不优,可能导致性能下降。可以尝试刷新 PlanCache,重新生成执行计划。
    • 操作步骤
      1. 登录 OceanBase 控制台。
      2. 进入目标租户的 租户详情 页面。
      3. 单击右上角更多图标,选择 刷新 PlanCache
      4. 单击 确定
    • 注意:刷新 PlanCache 后,所有 SQL 将重新解析和生成执行计划,可能会引起数据库性能波动,请谨慎操作。
  2. 优化 SQL 语句

    • 检查慢 SQL 的执行计划,优化索引设计或调整 SQL 逻辑。
    • 使用 EXPLAIN 命令分析 SQL 执行计划,确保查询路径最优。

三、调整租户资源配置

  1. 扩容租户内存

    • 如果租户内存不足,建议根据业务需求调整租户的内存规格。如果集群内存资源已分配满,可以考虑对集群进行扩容。
  2. 调整并发配置

    • 在数据迁移或批量插入场景下,合理设置读取和写入并发数。例如,将 读取并发数写入并发数 设置为不超过 512 的合理值,避免对源端或目标端造成过大压力。
  3. 限制全量迁移速率

    • 如果正在进行数据迁移,建议开启全量迁移速率限制,设置合理的 RPS(每秒迁移行数)和 BPS(每秒迁移字节数),以减少对业务的影响。

四、其他优化建议

  1. 允许索引后置

    • 在全量数据迁移完成后创建索引,可以缩短迁移耗时并提升性能。启用索引后置功能时,需调整以下参数:
      alter system set _temporary_file_io_area_size = '10' tenant = 'xxx';
      alter system set sys_bkgd_net_percentage = 100;
      
    • 注意:仅非唯一键索引支持后置创建。
  2. 清理无用数据

    • 如果目标表存在大量历史数据,建议在迁移前清理无用数据,避免数据冲突或迁移失败。
  3. 联系技术支持

    • 如果上述方法无法解决问题,建议联系 OceanBase 技术支持团队,提供详细的监控数据和日志信息,协助进一步排查。

通过以上步骤,您可以逐步排查并解决 OceanBase 数据库插入记录性能慢的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答