在线求解答!

[复制链接]
查看11 | 回复2 | 2011-11-1 16:25:51 | 显示全部楼层 |阅读模式
现在有两种建数据库的方式:
1、用sql脚本建表并导入基础数据。命令大致如下:
create table ...
insert into 他table ....
2、用dmp文件导入。命令大致如下:
imp accuser/accuser@acc file=accbase.dmp log=accbase.log fromuser=accbase touser=accuser
前面两种建库的方式都可以,但是区别就在插入数据的时候:
用(1)这种方式建的数据库,插入数据就很快。大约4个小时内,但是建库复杂很多。(关键是现在sql脚本不健全,变了很多。)
用(2)这种方式建的数据库,插入数据就很慢。大约10个小时以上,但是建库很方便。
我们插入数据的方式是通过dblink从其他库导过来的:
insert intotablename as select * fromtable@dblink ...
这样的方式来插入历史数据到新库的。因为不是仅仅插入一个表,所以很多导入数据的sql是写在一个存储过程里面的!
为什么(1)就快了,(2)就慢了啊???帮帮忙,分析下原因啊!!!
在线求解答!!!!!!!!!!


回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
理论上,我觉得应该第一种方法比较慢一些
批量数据迁移我们都用expdp/impdp都不用insert
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
sql脚本和dmp文件都是从一个数据库里面导出来的!
插入数据 目前只能用dblink的方式 因为数据没有导出来 我们也不能改变别人做事的方式!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行