现在需要把旧系统数据导入新系统数据库中,原系统数据库sqlserver2000,新系统采用数据库oracle10g由于原系统中有的数据量比较大。都在500万条左右。
方案一:采用程序实现分页读取数据插入,写很多线程并发执行。但是还是感觉速度很慢。运行了三天三夜才把数据导完
方案二:配置数据源,用sqlserver2000DTS先把sqlserver2000数据库表完全导入至oracle中,再执行oracle10g中执行SQL语句导入,效率也没见大幅提高
请问有没有效率什么好的意见。欢迎各位共同探讨。
方案一:采用程序实现分页读取数据插入,写很多线程并发执行。但是还是感觉速度很慢。运行了三天三夜才把数据导完
方案二:配置数据源,用sqlserver2000DTS先把sqlserver2000数据库表完全导入至oracle中,再执行oracle10g中执行SQL语句导入,效率也没见大幅提高
请问有没有效率什么好的意见。欢迎各位共同探讨。
解决方案 »
- SQL语法哪里出错了。
- 求高手:oracle中的子查询中为什么不能有order by
- 查找联机日志文件或归档日志文件
- Oracle10g 登入的问题?
- 在数据库查询中,如何处理空格和回车
- 谁有PL/SQL在EDITPLUS安装的语法文件?能给我一份吗[email protected]
- 帮我看一下这个JOB错在哪里?每隔7天系统执行p_sysdeleteinfo存储过程。
- 谁见过这样的oracle的错误? (ora-00000:正常,成功完成)
- Cognos页面怎么导航栏不见了?都不能进行配置 了
- oracle重装后系统默认用户显示共享内存领域不存在?
- 求助:数据库ORA-12514:TNS:listener does not...错误
- oracle 存储过程 高手帮忙改一下
(2)保持资源足够,尤其是锁资源以及回滚段、临时表空间足够。方案一:如果采用自己写程序完成,则关键是插入数据时的效率。大数据量的插入建议采用块插入,利用数组的方式,一次插入几千条,可以大大提高插入的速度。方案二:利用db工具处理
sqlserver:利用bcp将数据导出为格式化的数据(也可以自己写程序卸出)
oracle:利用sqlldr将卸出数据加载到表中
关于楼主的方案2,是可以商量的,看看DTS有没有批量提交的参数。在导入之前,参照1楼的,做一些准备工作。
然后是后期阶段使用"再执行oracle10g中执行SQL语句导入",这个SQL语句是可以用insert /*+APPEND*/方式加快插入。