1000万条数据如何insert 从服务器A的表table1中拿数据,然后删除服务器B的表table2中的数据,再将取到的数据insert到服务器B的表table2中语句我知道怎么写,关键是table1中有1000多万条数据,怎么插入到table2中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主可以换个思路,为什么每次都要删除table2中的数据呢,更新里面的数据不行吗?两台服务器需要dblink了可以在table1表中设置触发器,当有更新的时候把数据更新到table2中 直接update速度会快些吗?我先truncate然后insert时,速度很慢,还可能死机。 exp/imprename A to B alter table B nologging ;insert into B select * from A@dblink where ...;--如果是增量,可以在条件里限制。commit; 这事手工做的话,EXP/IMP最好了如果不是,还是用DBLINK吧操作放在B上,建一个DBLINK -> A 就可以了至于性能方面,好像没有具体说到环境、表的设计等其它方面,插入慢,数据量只是参考点之一。 如果是内网的话dblink也可以,外网最好是exp,压缩后再imp。 去看看 ETL 方面的资料或许有用 方法很多的 可以考虑用别的工具 也可以考虑在原来A上建立分区表 一部分一部分的往新B 里插入 可能一次插入太多 消耗资源太多 就用导入导出。 imp/exp 加hint /*+ append */ alter table b nologginginsert /* +append */ into b select * from a@dblink; 也可以采用exp imp 也很好 题外话,设为nologging后最好做一次备份。 insert /* +append */ insert /* +paralle*/insert bulk into nolog data pump导出,作为外部表加载 SQL> copy from user/pass@tnsname -> append table_nameb(name1,name2) -> using select * from tabl_nameacopy from 这个功能据说要去掉了,被exp/imp 取代。不过还是挺好用的,我导过2、3百万的数据用了 不到十分钟吧。 你的数据库要是归档的话,insert会让 闪回空间爆掉,那可是1000w呀,连删除带插入 多少日志,你想想。最好是导出导入 ,要是想insert就得先把归档关掉 ,你考虑吧 导入导出 是没日志的 我以前做大数据插入(大约5000w):备份数据,关日志、del索引,插,建索引,检查数据,开日志,ok 直接用DBLINK Insert预计会有问题D.小心回滚段和日志文件.建议用exp/imp. 这个顶一下,我就是经常用这个。另外楼主的服务器A 和服务器B如果一样(里面的表索引等一系列对象)的话,可以试一下这两个命令expdp impdp 这个速度是相当快的 哇...说实话..我看不懂dblink是什么意思..刚入门的菜鸟..求高手写个事例加速了解谢谢! 怎么拆分这个表? oracle 数据库读取记录为空 Oracle 如何快速查询 表里的数据? 急~~~~ Oracle的触发器怎样实现通过时间触发? 求sql 高分问asp.net(c#)中连接Oracle数据库的字符串问题!顶者有分! 关于数据导出的问题,请高手指点 请问,NT4 上可以安装ORACLE吗? 关于ORACLE系统运行的操作系统选型问题(WINDOWS OR LINUX) 求各路大神求解,很困惑。。。 使用语句查询索引、主键 Oralce如何实时将数据库A一个表A产生的记录搬到另一个数据库B同结构的表B,并将数据库A的表A原记录删除
两台服务器需要dblink了
可以在table1表中设置触发器,当有更新的时候把数据更新到table2中
rename A to B
alter table B nologging ;insert into B select * from A@dblink where ...;--如果是增量,可以在条件里限制。
commit;
如果不是,还是用DBLINK吧操作放在B上,建一个DBLINK -> A 就可以了
至于性能方面,好像没有具体说到环境、表的设计等其它方面,插入慢,数据量只是参考点之一。
也可以考虑在原来A上建立分区表 一部分一部分的往新B 里插入 可能一次插入太多 消耗资源太多
imp/exp
alter table b nologginginsert /* +append */ into b select * from a@dblink;
也可以采用exp imp 也很好
insert /* +paralle*/
insert bulk into
nolog
> append table_nameb(name1,name2) -
> using select * from tabl_nameacopy from 这个功能据说要去掉了,被exp/imp 取代。不过还是挺好用的,
我导过2、3百万的数据用了 不到十分钟吧。
最好是导出导入 ,要是想insert就得先把归档关掉 ,你考虑吧 导入导出 是没日志的
备份数据,关日志、del索引,插,建索引,检查数据,开日志,ok
小心回滚段和日志文件.建议用exp/imp.
expdp impdp 这个速度是相当快的