之前的版本中,只能在批量加载操作时,比如direct load、create table as select 操作,才能压缩数据。在dml操作期间是无法压缩数据的。
在11g中,oracle将表压缩扩展到OLTP负载,比如可以在insert的时候压缩数据。
OLTP压缩可以节省50-70%的空间。OLTP压缩不仅不会降低写的性能,还会增加读的性能(直接读取压缩数据)。
设置表压缩
普通的压缩表:
1.使用传统方式创建压缩表
SQL> create table ct1(id number) compress;
2.11G新语法方式创建压缩表
SQL> create table ct2(id number) compress for direct_load operations;
3.创建OLTP压缩表(dml操作时压缩数据)
SQL> create table ct3(id number) compress for all operations;
监控表压缩
SQL> select table_name,compression,compress_for from user_tables; TABLE_NAME COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
DEPT DISABLED
CT3 ENABLED OLTP
CT2 ENABLED BASIC
CT1 ENABLED BASIC