如何往Oracle数据库索引表中插入数据

通过dblink往另外一个数据库的表中insert数据时,速度超慢,数据量有400万条记录左右,每天都要传数据,目标表有唯一索引等,该如何提高insert速度?注意:不要说先删除索引倒完数再建立索引!!!
woojooo的回答似乎忽略了1个问题,目标表存在索引的问题;
另外补充一下我的语句INSERT INTO 用户名.远程库表名@dblink select * from 本地表名; 注意远程库表已经有1年的数据,每一天的数据时400万左右,目前数据量已经非常大。

第1个回答  2010-02-19
用Create Table…as select,先把本地表上传到远程数据库,如果还要合并数据,再在远程数据库上使用insert命令。
第2个回答  2010-02-05
建议你写个小程序:采用多线程批处理来进行操作,速度绝对很快。
第3个回答  2010-02-22
建议你写个小程序:采用多线程批处理来进行操作,
第4个回答  推荐于2016-04-14
使用dblink传递数据最快的方式是:
create 本地表 as select * from 远程表@数据链接;
到了本地以后,再进行insert
这样的速度基本只受限于网速。

insert into 本地表 value();的方式会多次在远程进行全表扫描。
因为您没有写代码出来,所以只有猜测您可能是这样的。

您遇到的情况一般来说大家都是做一个接口来处理的。
接口表更新远程数据到本地,本地表再获取接口数据。

所谓的接口,其实就是利用数据链接,create一个您所需要的远程的数据表的子集镜像。
用pl/sql写一个过程,然后设定一个schedule定时执行就可以了。

还有一种方式,是在本地,做一个远程表的物化视图。

400万行数据的表,一般局域网内create到本地300秒左右。本回答被提问者和网友采纳

如何往Oracle数据库索引表中插入数据
用Create Table…as select,先把本地表上传到远程数据库,如果还要合并数据,再在远程数据库上使用insert命令。

如何向Oracle数据库表中进行大数据量的插入并提交?
然后,假如你的目标数据库, 是归档的话, 可以INSERT \/*+ append *\/ INTO 目标表 nologging SELECT * FROM 源表@DBLINK;commit;set autocommit off;假如你的 目标表 上面, 有 索引的话, 建议先删除 索引。等 上面的 INSERT 语句执行完毕后, 再重建索引。 追问 insert into T1 select * from T2@Oracle12...

Oracle中使用PL\/SQL怎样用循环插入多条数据?
1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据beginfor i in 1 .. 100 loopinsert into test(xh...

Oracle怎么导入数据
exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。二.语法可以通过在命令行输入 imp help=y 获取imp的语法信息:===C:Documents and Settingsauduser>imp help=yImport: Release 9.0.1.1.1 - Production on 星期二...

oracle 重建索引
1、重新收集统计信息 analyze table 表名 compute statistics for table for all indexes for all indexed columns analyze index 索引名 compute statistics 2、把表现不同的sql及其执行计划发上来看看

可不可以在Oracle表中有大量数据时创建索引,这样做有没有不好的影响...
1.打开Navicat,如下图所示。2.右键单击oracle数据库,然后单击[openconnection],如下图所示。3.单击[other],然后单击[index],以显示oracle数据库中所有已知的索引。4.点击“新建索引”进入索引设计界面。5.在[general]选项卡上,设置类型、表类型、跟踪表名、列名等。6.在[advanced]选项卡中,设置...

oracle 添加索引
1、oracle中索引说明:1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认...

Oracle索引的索引使用原则
(1)在表中插入数据后创建索引。在表中插入数据后,创建索引效率将更高。如果在装载数据之前创建索引,那么插入每行时oracle都必须更改索引。(2)索引正确的表和列。如果经常检索包含大量数据的表中小于15%的行,就需要创建索引。为了改善多个表的相互关系,常常使用索引列进行关系连接。(3)主键和唯一...

oracle中怎样导入数据库文件
1、登录到要导入的数据库及用户。2、依次点击“工具”——“导入表”。3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。命令导入:1、win键+R键,进入命令提示符。2、进到.dmp文件所在文件夹:3、输入如下命令:imp 被导入用户名\/密码@实例名 file=文件名.dmp log=...

oracle数据库中往分区表里插入数据时,索引需要先删掉吗
需要看是否是全局索引。如果是全局索引,是需要重建,如果是本地分区索引,还可以继续使用。Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

相似回答