能否在SQL Developer的不同工作表中向同一张表插入数据?
问题解答
可以操作,只要你拆分的两部分数据不存在主键/唯一约束冲突,也没有逻辑层面的重叠,完全可以在SQL Developer的不同工作表中并行执行插入操作,写入同一张目标表。
操作时需要注意以下几点:
- 提前校验目标表约束规则:如果目标表设有主键、唯一索引这类唯一性约束,一定要提前做好数据拆分,确保两部分待插入数据不会触发约束冲突,否则其中一侧的插入操作会直接报错回滚。
- 注意事务提交规则:SQL Developer的不同工作表对应独立的数据库会话,会话之间的事务默认隔离,两侧插入操作完成后都需要手动执行
COMMIT命令,否则其他会话无法看到已插入的数据,要是工作表异常关闭还会导致插入的数据全部回滚丢失。 - 大数据量插入优化:数十万条数据插入时,可以在插入前临时禁用目标表的非必要索引、触发器,全部插入完成后再重建启用,能大幅提升插入效率;也可以在插入语句中使用
/*+ APPEND */提示做直接路径插入,减少redo日志生成,进一步加快写入速度。 - 插入后数据一致性校验:两侧插入都提交完成后,建议执行统计SQL核对目标表总条数、关键维度的汇总值,和原始待插入数据的统计结果做比对,避免出现漏插、错插的问题。
内容的提问来源于stack exchange,提问作者mrHowareyou
相关产品推荐
相关产品推荐

