一、基本压缩
基本压缩只对直接路径加载的数据有影响,对dml操作的数据无效,如果需要对dml操作的数据有效,需要使用高级压缩。
create table t compress as select * from t1;
- 11g之前 compress for direct_load operation;
- 11g compress basic;
- 12c row store compress;
存放压缩后数据的表,之后所有的直接路径加载也会以压缩格式存储。
create table t4 row store compress as select * from t2;
compress\compress basic\row store compress和row store compress basic同义。
查看是否启用压缩
select table_name,compression,compress_for from dba_tables where table_name=t4;
–修改已创建的表的压缩模式,不会影响现有数据,只会对新直接路径加载进来的数据进行压缩。
alter table t4 compress;
–压缩已经存在的数据,会使索引失效
alter table t4 move compress;
–禁用压缩,已有的数据不会解压缩,对以后直接路径操作进来的数据会进行压缩。
alter table t4 nocompress;
–对已存在的数据解压缩
alter table t4 move nocompress;
–表空间级别压缩
create tablespace t1 datafile 'xxxx' size 500m extent local uniform size 512k segment space management auto default compress;
–修改已有表空间的压缩模式
alter table space t3 default compress;
select tablespace_name,def_tab_compression,compress_for from dba_tablespace where tablespace_name='t3';
注意:无法在创建时启用了基本压缩的表中删除列,但是可以将这些列标记为未使用。
二、为DML操作压缩数据
create table t5(id number,name varchar2(20)) row store compress advanced;
--11gr2之前 compress for all operations;
--11gr2 compress for oltp;
--12c row store compress advanced;
–查看是否启用压缩
select table_name,compression,compress_for from dba_tables where table_name=t4;
–为已经创建的表启用压缩 并不会影响已有数据,新加入数据会被压缩
alter table t1 row store compress advanced;
–已有数据压缩,会使索引失效
alter table t1 move row store compress advanced;
–禁用压缩,已有的数据不会解压缩
alter table t1 nocompress;
高级压缩会在数据修改达到一定阈值时批量压缩。
–表空间级别压缩
create tablespace t1 datafile 'xxxx' size 500m extent local uniform size 512k segment space management auto default row store compress advanced;
alter table space t3 default row store compress advanced;
select tablespace_name,def_tab_compression,compress_for from dba_tablespace where tablespace_name='t3';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




