现在需要把旧系统数据导入新系统数据库中,原系统数据库sqlserver2000,新系统采用数据库oracle10g由于原系统中有的数据量比较大。都在500万条左右。
方案一:采用程序实现分页读取数据插入,写很多线程并发执行。但是还是感觉速度很慢。运行了三天三夜才把数据导完
方案二:配置数据源,用sqlserver2000DTS先把sqlserver2000数据库表完全导入至oracle中,再执行oracle10g中执行SQL语句导入,效率也没见大幅提高
请问有没有效率什么好的意见。欢迎各位共同探讨。
方案一:采用程序实现分页读取数据插入,写很多线程并发执行。但是还是感觉速度很慢。运行了三天三夜才把数据导完
方案二:配置数据源,用sqlserver2000DTS先把sqlserver2000数据库表完全导入至oracle中,再执行oracle10g中执行SQL语句导入,效率也没见大幅提高
请问有没有效率什么好的意见。欢迎各位共同探讨。
(2)保持资源足够,尤其是锁资源以及回滚段、临时表空间足够。方案一:如果采用自己写程序完成,则关键是插入数据时的效率。大数据量的插入建议采用块插入,利用数组的方式,一次插入几千条,可以大大提高插入的速度。方案二:利用db工具处理
sqlserver:利用bcp将数据导出为格式化的数据(也可以自己写程序卸出)
oracle:利用sqlldr将卸出数据加载到表中
关于楼主的方案2,是可以商量的,看看DTS有没有批量提交的参数。在导入之前,参照1楼的,做一些准备工作。
然后是后期阶段使用"再执行oracle10g中执行SQL语句导入",这个SQL语句是可以用insert /*+APPEND*/方式加快插入。