以前的库里数据量庞大,而且有各种空格。目前转移数据(相当于备份),但是要求高效压缩。此方面我一点都不懂...只知道建表的时候,后面加个compress,之后导入文件的方式把数据导入到表里。现在问题就是,我用sqlldr命令导入,会有压缩数据的效果么?从哪里能看到效果...还有就是,如果用sqlldr导入,一次只能导入一张表还得写个ctl文件,如果导入几百个表那岂不累死,有没有批量导入的方法呢。

解决方案 »

  1.   

    用RMAN,备份时选择压缩。这样可以么?
      

  2.   

    不是要压缩归档啊,只是复制转移,这些表还要天天用的。目标是利用oracle 11g的compress新功能,把一些表从老库复制到新库,这些表在新库能正常用,只不过新库的表是优化的,压缩的。现在问题就是在取了老库的数据文件之后,导入数据到新库是否有效果是从哪里看的,另外求教的是批量导入是怎么弄的,不能一个表一个ctl文件那么控制吧...
      

  3.   

    sqlldr有压缩效果,记得要加上“direct=true”,平均下来10G的表最后是3G多点。这个和表里某列重复值的多少而变化的。看效果可以从user_segments里看到,bytes字段。ctl控制文件可以通过USER_TAB_COLUMNS表生成,但是导出怎么弄我也不知道,我也是找这个答案找到这里来的。