用dblink从远程oracle数据库导数据到本地oracle库中:insert into 本地表 select * from 远程表@dblink
有500多万条数据吧,运行起来特别的慢,要10几个小时才能导完,是不是出什么问题了呢,本地表没有索引,
你们是怎么做的呢,不考虑其他的导入方式,只用insert into
有500多万条数据吧,运行起来特别的慢,要10几个小时才能导完,是不是出什么问题了呢,本地表没有索引,
你们是怎么做的呢,不考虑其他的导入方式,只用insert into
解决方案 »
- ORACLE 分区问题,急!!!!!
- oracle如何将一个记录转换成多个记录
- 谁有http://www.cnoug.org/ 这个网的邀请码给我一个
- 服务自动关闭 急!急!急!在先等待!
- windows2000 server下ORACLE8i监听器及建立建立本地连接问题
- 还是sql的问题
- oracle安装问题求救?(加载数据库出错 areasQueris)
- 資料庫網羅更新速度問題----急
- 求助(登陆问题)
- 怎样将Oracle 数据转到Sql server中?其中Oracl中大量用到了触发器和存储过程.
- 【再次求助】怎么插入“&”符号?????
- 难题,求教,关于oracle数据库记录的逐条更新问题!!!!!!!!!!!!!!!!!!!!!!!!
这也可以做成程序直接执行。
将table1插入到table2中: 几条思路,你考虑一下
1、指定回滚段,回滚段足够大
set transaction use rollback segment RBS1;
INSERT INTO table1 NOLOGGING
SELECT * FROM table2;
commit;
2、采用定义cursor,每5000或10000条记录提交一次
declare
cursor cur_select is
select t1,t2,t3..... from tabl1;
v_id number;
v_t table1%rowtype;
begin
open cur_select;
loop
exit when cur_select%notfound;
fetch cur_select into v_t.t1,v_t.t2,v_t.t3..... ;
insert into table2
(t1,t2,t3......)
values
(v_t.t1,v_t.t2,v_t.t3..... );
v_id := v_id + 1;
if v_id = 10000 then
commit;
v_id := 0;
end if;
end loop;
commit;
end; 3。也可考虑BULK绑定办法
在Oracle 9i上建议使用bulk insert.
4。建议使用NOLOGING参数
使用oracle中包含在注释中的提示信息
insert /*+append*/ into ...nologing
select * from ...
我够笨的!请教各位高士还有没有其他的方法?
insert /*+append*/ into ...
select * from ...