Oracle相关压缩技术

本文介绍了Oracle数据库中的表压缩技术,包括基本压缩、OLTP压缩、数据仓库压缩等,并提供了创建和修改压缩表的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

技术点小贴士

1.压缩表不支持在线shrink操作。

2.表压缩技术不适合于11g的新大对象技术SecureFiles。因为SecureFiles采用自己的压缩技术

3.当表采用BASIC压缩算法后,表的PCTFREE菜蔬自动设置为0

4.使用COMPRESS FOR OLTP或COMPRESS BASIC 方式,表的字段数量不能超过255个。虽然可以设置成功,但数据实际上是没有压缩的。

5.IOT表不可以压缩。


压缩技术分类

1.Basic Compression适用于数据仓库

2.OLTP Compression既适合交易系统也适合数据仓库

3.Warehouse Compression (Hybrid Columnar Compression)采用11g新混合列压缩技术,适合于数据仓库

4.Online Archival Compression(Hybrid Columnar Compression)采用11g新混合列压缩技术,与Warehouse Compression不同的是,其压缩比最高,但CPU开销最大,甚至影响查询操作,因此适用于数据访问很少的数据归档系统。


创建压缩表

1.普通压缩表

CREATE TABLE sales_history ... COMPRESS;

如下语句通过Direct-Path INSERT操作,向sales_history表以压缩形式写数据

Insert /*+APPEND */ into sales_history select * from sales where cust_id=8890;

commit;


2.创建OLTP压缩表

Create Table orders ... Compress For OLTP;

以下语句第一个分区设计为普通压缩,第二个分区设计为OLTP压缩分区,第三个为非压缩的。

Create Table(

object_id number(10),

object_name varchar2(120)

)

PARTITION BY RANGE (object_id)(

PARTITION p1 VALUES LESS THAN (100000) COMPRESS BASIC,

PARTITION p2 VALUES LESS THAN (200000) COMPRESS FOR  OLTP,

PARTITION p3 VALUES LESS THAN (maxvalue) NOCOMPRESS

)


3.创建Warehouse Compression或者Warehouse Compresssion压缩表

Create table sales_history ... COMPRESS FOR QUERY;

Create table sales_history ... COMPRESS FOR ARCHIVE;


修改压缩表

1.将表转换为BASIC压缩表

alter table emp move Compress basic;

2.将表转换为OLTP压缩表

alter table emp move compress  for oltp;

3.将一个分区转换为Basic压缩分区

alter table part_objects move partition p3 compress basic;

以下语句修改一个分区的现有的压缩算法,但更改之后的压缩算法只对新纪录有效,而不影响原有记录

alter table part_objects modify  partition p1 compress for oltp;


PS:上述move和modify操作均非在线操作,即进行这些操作时这些表不可进行DML操作。欲在线进行压缩算法变更操作,则需要采用在线重定义技术。


查询压缩记录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值