OceanBase 数据库插入记录性能变慢可能由多种原因引起,包括系统资源瓶颈、SQL 执行计划问题、租户内存不足等。以下是基于知识库资料的详细分析和解决方法:
一、排查性能瓶颈
- 
查看租户事务监控数据 
- 检查 TPS(每秒事务提交数量) 和 服务端每个事务平均处理时间,判断是否存在事务处理效率下降的情况。
- 查看 每秒提交的事务日志数 和 每秒提交的事务日志大小,确认是否存在日志写入瓶颈。
- 检查 每秒事务锁等待次数 和 每个锁等待平均耗时,判断是否存在锁争用问题。
 
- 
查看租户性能与 SQL 监控数据 
- 检查 平均每秒处理 SQL 语句数 和 响应时间,确认是否存在 SQL 执行效率下降。
- 查看 会话数 和 活跃会话数,判断是否存在会话过多导致的资源竞争。
- 检查 慢 SQL 数量,定位是否存在执行效率低下的 SQL 语句。
 
- 
检查租户内存使用率 
- 如果租户内存使用率超过默认阈值(85%),可能会导致性能下降。可以通过告警信息确认是否存在内存超限问题。
 
- 
检查集群主机性能监控 
- 在集群监控页面中,切换到 集群主机,查看 CPU、内存、磁盘 I/O 等主机性能指标,确认是否存在硬件资源瓶颈。
 
二、优化 SQL 执行计划
- 
刷新 PlanCache 
- 如果 SQL 执行计划生成不优,可能导致性能下降。可以尝试刷新 PlanCache,重新生成执行计划。
- 操作步骤:
- 登录 OceanBase 控制台。
- 进入目标租户的 租户详情 页面。
- 单击右上角更多图标,选择 刷新 PlanCache。
- 单击 确定。
 
- 注意:刷新 PlanCache 后,所有 SQL 将重新解析和生成执行计划,可能会引起数据库性能波动,请谨慎操作。
 
- 
优化 SQL 语句 
- 检查慢 SQL 的执行计划,优化索引设计或调整 SQL 逻辑。
- 使用 EXPLAIN命令分析 SQL 执行计划,确保查询路径最优。
 
三、调整租户资源配置
- 
扩容租户内存 
- 如果租户内存不足,建议根据业务需求调整租户的内存规格。如果集群内存资源已分配满,可以考虑对集群进行扩容。
 
- 
调整并发配置 
- 在数据迁移或批量插入场景下,合理设置读取和写入并发数。例如,将 读取并发数 和 写入并发数 设置为不超过 512 的合理值,避免对源端或目标端造成过大压力。
 
- 
限制全量迁移速率 
- 如果正在进行数据迁移,建议开启全量迁移速率限制,设置合理的 RPS(每秒迁移行数)和 BPS(每秒迁移字节数),以减少对业务的影响。
 
四、其他优化建议
- 
允许索引后置 
- 
清理无用数据 
- 如果目标表存在大量历史数据,建议在迁移前清理无用数据,避免数据冲突或迁移失败。
 
- 
联系技术支持 
- 如果上述方法无法解决问题,建议联系 OceanBase 技术支持团队,提供详细的监控数据和日志信息,协助进一步排查。
 
通过以上步骤,您可以逐步排查并解决 OceanBase 数据库插入记录性能慢的问题。