【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】4张表合并到一张表,A表数据1200w行,全量向B表插入到B表,B为空表,执行了1个小时,有批量插入的高效方法吗?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】4张表合并到一张表,A表数据1200w行,全量向B表插入到B表,B为空表,执行了1个小时,有批量插入的高效方法吗?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
在这个问题中,用户提到的是关于在OceanBase数据库中进行大量数据插入操作时的性能问题。虽然obdiag主要用于故障诊断和问题排查,但在这种情况下,我们可以尝试通过日志采集来了解是否有特定的原因导致插入效率低下。不过,针对性能优化问题,通常还需要考虑表结构设计、索引策略、事务管理等多个方面。以下是我们可以采取的步骤:
日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
请您运行上述命令来收集有关SQL性能的相关日志,这将有助于我们分析是否有优化的空间。同时,为了更有效地帮助您解决问题,请提供以下信息:
以上信息将帮助我们更好地理解您的问题,并给出更为精确的优化建议。感谢您的配合!
附上敏捷诊断工具 obdiag 使用帮助链接
INSERT /+ENABLE_PARALLEL_DML PARALLEL(8)/ INTO 开启PDML试下,看下插入的效率会不会提升
这点数据量,旁路导入,不到一分钟可以搞定了啊,除非你规格很小很小很小,以及大宽表
谢谢,我试一下
你好,我新手,请问旁路导入 表到表 怎么用?用obloader吗?格式是什么样的,请赐教
旁路导入的方法有很多种,简单的通过HINT来实现 INSERT /*+ENABLE_PARALLEL_DML PARALLEL(8) APPEND * / INTO ,使用时候要打开自动提交 set autocommit=1;
如果只上线做一次的话用bulk load导出导入感觉会更快一些
旁路导入因为没有日志,这就是快的原因呀?
旁路导入不走日志