做一个小项目,Oracle数据库,首先把数据库A schema中的各数据抽取到 B schema中,再将抽取到的数据按照新的表结构进行转换(可能多张旧表中的各个字段对应一张新表中的各字段,即表结构改变),转换后将数据放入B schema的新表中。以上动作为每一个月自动进行一次,一个月的数据量差不多为8G左右。各位大侠看有没有好点的解决方案,谢谢!最好是用存储过程实现!

解决方案 »

  1.   

    这个动作比较大啊,那么多数据进行重构,相当麻烦的,主要是过程比较难写,每一个月自动处理一次到时容易,job就能做到。
    对于表结构的重构,根据你具体逻辑来做,过程你慢慢写吧,我们不懂你具体逻辑
      

  2.   

    1、关键要看你服务器的性能,一般可安排在业务少的晚上使用JOB调用存储过程进行。
    2、如果性能差一点,最好分散抽取,比如说每晚或者每周一次。
    3、如果每月集中抽取插入数据,为了加快速度,在批量插入语句中使用append提示和nologging 减少undo及redo生成。如:insert /*+append*/into <目的表> nologging select * from <源表>;
    4、可以将数据分段(如按时间)循环多次分批次插入。
      

  3.   

    每月抽取,使用JOB或者操作系统自带的任务调度都可以实现。
    出于性能的考虑,宜把时间安排在晚上,楼上的第3条第4条都是很好的措施。