数据压缩可以节约很多的空间, GZIP是一个比较优秀的算法, 在空间和压缩速度之间有一个良好的平衡, 很多软件只内嵌的压缩算法都是GZIP算法, 例如rsync的压缩传模式. 花了几天时间研究了一下开源压缩模块(zlib)的编程接口后, 将它集成到了文本导出工具(sqluldr2)中, 可以直接生成压缩后的文件. 只要输出文件名最后以".gz"结尾, 就会自动启用压缩模式, 不需要用专门的命令行选项.

D:\OracleClient>sqluldr2zip parfile=testpar.txt file=a.txt.gz
      0 rows exported at 2009-04-16 17:48:09
      50 rows exported at 2009-04-16 17:48:09
        output file a.txt.gz closed at 50 rows.

    先用小数据量测试一下功能, 用Winzip或gunzip可以成功解压生成的压缩文件.

D:\OracleClient>dir a.txt.*
2009-04-16  09:48            1,589 a.txt
2009-04-16  17:48              704 a.txt.gz

    晚上再用前段时间测试性能的数据测试一下压缩方式的效率, 测试数据会稍后贴在回复中. 有压缩模式后, 可以更方便地使用SQLULDR2来归档静态的历史数据. 如果在Linux或Unix下也可以用重定向来实现这个功能.

sqluldr2 ... file=- | gzip > a.txt.gz

    个人比较喜欢集成起来使用.