oracle主库有一个大表servicerepair,里面有300万条记录,每条记录都是有状态的(联系,正在服务,完成,已结束,已取消),其中以已完成和已取消的数量为最多,
问题:想每隔一段时间把已完成和已取消的记录保存到另一个数据库表里面,并把这些删除掉,以后不定期的还会移植,
请问有什么好的思路吗?

解决方案 »

  1.   

    创建jobs定期执行语句就可以了
      

  2.   

    先插入,再删除,也没有什么很好的办法。
    最多定期对大表servicerepair做一下shrink,因为频繁删除插入会导致占用很多块,降低访问效率。
      

  3.   

    我的主库是在unix上oracle9i,我打算在windows创建个库,里面建个表做迁移,先插入,再删除,我想到的是用程序实现,(用程序把数据读出来,平凑成sql语句,再插入到另一个数据库的表里,感觉太那个),请问你可以说你的先插入,再删除的思路具体点吗?谢谢
      

  4.   

    你好,我是在不同的数据库之间操作的,就是把主库(unix oracle9i)的一部分数据迁移到window上的数据库,然后再删掉这部分数据。以后每隔一段时间还会这样做。往window上迁移数据
      

  5.   

    在unix的主库上建个windows库的db link,然后在unix的主库上执行插入(到table@dblink),删除就行了.db link的用法如果不熟可以网上查查。
      

  6.   

    dblink是在本地访问远程数据库,不太明白通过dblink怎么去插入到远程数据库?