表空间级COMPRESS属性--压缩表的应用

表空间级COMPRESS属性

可以在表空间级别上定义COMPRESS属性,既可以在生成时利用CREATE TABLESPACE来定义,也可以稍后时间利用ALTER TABLESPACE来定义。
与其他存储参数类似,COMPRESS属性也具有一些继承特性。

当在一个表空间中创建一个表时(默认不加参数时),它从该表空间继承COMPRESS属性。

压缩表的应用场景:

压缩表可提高查询效率,但会大大降低插入和删除效率(个人建议当表大于100G时在考虑吧)
alter table hu move partition "REN130602" compress parallel 8 nologging;

1.olap因为不需要频繁修改,所以使用数据压缩可以节省空间,减少IO,建议尽量使用
2.oltp中需要视情况而定,分析具体对象中的重复数据大概占总量的多少,以及具体运行时占用资源的情况,综合考虑是否适用


实验一:将使现有表空间转换为压缩表空间,创建表并查看COMPRESS属性。

启用表空间级的 compress

SQL> alter tablespace users default compress;

Tablespace altered
SQL> create table test3 tablespace users as select * from dba_objects;
Table created
SQL> select table_name,compression from user_tables where table_name='TEST3';
TABLE_NAME                     COMPRESSION
------------------------------ -----------

TEST3                          ENABLED

禁用表空间级的 compress

SQL> alter tablespace users default nocompress;
Tablespace altered
SQL> create table test4 tablespace users as select * from dba_objects;
Table created
SQL> select table_name,compression from user_tables where table_name='TEST4';
TABLE_NAME                     COMPRESSION
------------------------------ -----------

TEST4                          DISABLED


实验二:示例演示表级数据压缩的效果。

可以在一个表空间里直接压缩或解压缩一个表,而不用考虑表空间级别上的COMPRESS属性。

SQL> create table testcompress as select * from dba_objects;
Table created
SQL> create table test1 as select * from dba_objects;
Table created
SQL> col segment_name for a20
SQL> select segment_name,extents,blocks,bytes/1024 KB from dba_segments where segment_name in('TEST','TEST1');
SEGMENT_NAME            EXTENTS     BLOCKS         KB
-------------------- ---------- ---------- ----------
TEST                         18        384       3072
TEST1                        24       1152       9216
SQL> select table_name,compression from user_tables where table_name='TEST1' or table_name='TEST';
TABLE_NAME                     COMPRESSION
------------------------------ -----------
TEST                           ENABLED
TEST1                          DISABLED
表压缩的改变:设置为非压缩表
SQL> alter table test nocompress;
Table altered
SQL> select table_name,compression from user_tables where table_name='TEST1' or table_name='TEST';
 
TABLE_NAME                     COMPRESSION
------------------------------ -----------
TEST                           DISABLED
TEST1                          DISABLED
SQL> alter table test move compress;
Table altered
SQL> select table_name,compression from user_tables where table_name='TEST1' or table_name='TEST';
TABLE_NAME                     COMPRESSION
------------------------------ -----------
TEST                           ENABLED
TEST1                          DISABLED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值