oracle 中如何将一张500万数据的表从一个库快速转移到另外一个库

N798588567 2012-09-19 04:16:08
大家好,如题,因为优化需求的原因,目前需要处理的历史数据有500万左右,现在我需要在一张新表中生成500万的数

据,但是存储过程处理时由于关联比较复杂,在投产的时候要执行完这段程序测试了下需要近10个小时,而这个时间客户接受

不了,我自己也接受不了。所以我想在其它环境先生成这500万数据,在投产的时候直接将这500导进去。

可是目前发现导进去的速度一样慢,我这样做的,在测试环境将生产投产时应该生成的数据插进这个新表中,数据约500万,

执行完后将测试环境的这个表及其数据全导出来,然后投产的时候直接导进去。我测试的时候 导出的是sql脚本,然后我在其

它环境测试导入的时候发现还是一样慢,怎么回事呢?直接导入的话应该很快的呀?难道我的导入方式不对?



我应该怎么做呢?大家有没有更好的办法?投产时间太长啦,谁也不可能守着,而且生产环境不能停这么久,顶多给我一个小时


...全文
917 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nihao20071 2012-10-10
  • 打赏
  • 举报
回复
一定要导入导出吗?如果可以的话,可以考虑建dblink,然后通过dblink直接把表及数据拉过来存放在临时表里面,然后在插入的需要的表里面
strive_bo 2012-10-09
  • 打赏
  • 举报
回复
首先第一个问题是你用存储过程去处理这些数据时分析时,500万数据量,慢是肯定的。
但是让我疑问的是你用 用exp,imp来导出导入的脚本贴出来 是不是字段特别多,如果脚本全是insert语句的话,在加上你的字段也特别多,500万数据那肯定也相当慢。

建议你用sqlldr命令去导入,或者直接导入表数据。那样速度会很快。
xiaoyanglei 2012-10-08
  • 打赏
  • 举报
回复
如果表是分区表的话,可以使用分区交换技术
jumpheightway 2012-09-29
  • 打赏
  • 举报
回复
修改数据库缓存
leech125 2012-09-29
  • 打赏
  • 举报
回复
将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
wlnet 2012-09-28
  • 打赏
  • 举报
回复
主键也删除了是最好的咯
wlnet 2012-09-28
  • 打赏
  • 举报
回复
insert语句脚本很慢的,
触发器一定要禁了
主键索引到问题不大,其他索引最好也删除,导完重建。

还不行的话(肯定机器太差),你可以先导到另外的表名里,库里再转一次,时间总够啦!
ssqtjffcu 2012-09-20
  • 打赏
  • 举报
回复
不要导成insert语句脚本,用exp,imp来导出导入。你导成insert语句,你执行insert语句是很慢的。
iqlife 2012-09-20
  • 打赏
  • 举报
回复
机器性能配置如何,
其次脚本如何的?
N798588567 2012-09-20
  • 打赏
  • 举报
回复
上边两位朋友,我就是这样做的,只是导入的时候发现很慢,一个小时才导了70万数据,有没有更好的方法呢
kingstarer 2012-09-20
  • 打赏
  • 举报
回复
你说是导出成sql? 不应该导出成sql的,这样太慢了

把你的impdp脚本发上来看看?

另外,你的表导入之前先把索引,主键停了,导完后再重建主键索引,这样会快很多

还可以把表设置为nologging

如果表上面有触发器,也是一样道理,先停了
hrbhitxw 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
用expdp导出,导出时指定只导出这个表格,然后投产的时候用impdp导进去。
[/Quote]
导入导出的时候记得先把触发器,外键什么的都停掉,导完再开启,或者生产库没有建这张表
fw0124 2012-09-19
  • 打赏
  • 举报
回复
用expdp导出,导出时指定只导出这个表格,然后投产的时候用impdp导进去。
内容概要:本文档是一份关于“基于配电网韧性提升的应急移动电源(MPS)预配置”的科研复现资料,聚焦于在自然灾害或突发情况下,通过科学合理的MPS预配置策略增强配电网的韧性。研究构建了一个优化模型,采用Matlab进行代码实现,旨在确定MPS的最佳预配置位置与容量,以最大限度减少潜在故障导致的负荷损失,提升电力系统的恢复能力与供电可靠性。该研究属于电力系统优化调度领域,强调预防性措施在现代电网管理的关键作用,并为后续动态调度奠定基础。; 适合人群:适用于电力系统、电气工程及其自动化等相关专业的高校研究生、博士生,以及从事电网规划、运行与控制工作的科研人员和技术工程师。; 使用场景及目标:①为配电网应对极端事件提供高效的应急电源预配置解决方案;②为相关领域的研究人员复现SCI一区高水平论文提供完整的模型推导与Matlab代码参考;③服务于智能电网韧性提升、电力系统优化调度等方向的学术研究与教学实践。; 阅读建议:建议读者结合电力系统分析与优化理论的基础知识进行学习,重点掌握文档优化模型的构建逻辑与Matlab代码的实现细节。由于文档建议“按目录次序逐一浏览”,推荐系统性地从研究背景、数学模型、求解算法到代码实现逐部分深入研读,并积极利用文提供的网盘资源与公众号平台获取完整资料,以便更好地理解模型内涵并成功复现实验结果。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧