gpt4 book ai didi

sql - Oracle批量插入的方法

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:29 25 4
gpt4 key购买 nike

我必须将大量数据从一个数据库实例加载到另一个数据库实例,要求是仅使用 DBlinks。

使用 SQLLDR 我能够达到每秒 20 万条记录的速度,并希望使用 DBLinks 复制同样的速度。

使用直接路径插入(追加提示)给我每秒最多 40k 条记录。但是由于使用直接路径插入需要表级别,我无法打开多个 session 以将其扩展到 200K。

由于常规插入非常慢,我可能必须打开 30 到 40 个 session 才能满足所需的速度。有没有办法在同一个表中实现并行直接路径插入?或者有其他方法或 DB可以帮助我提高每秒插入次数的调整?

注意:我已经尝试过分区表,锁仍然在表上而不是在分区上。

最佳答案

我通过使用 insert append with partition 子句找到了解决方案。如果 insert 子句包含分区信息,则锁定在分区上而不是表上。

将查询写成:

Insert/*+ append */into destination partition(ptnName) select * from source@dblink where (partition filtering condition).

我在目标表中创建了 8 个分区,并启动了 8 个 session 以加载到各个分区。它让我获得了与 SQLLDR 速度相匹配的性能。

关于sql - Oracle批量插入的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24546733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com