Oracle 11g 压缩表技术概要

关于表压缩

表压缩的目的,主要是节省磁盘空间,减少数据库buffer cache内存使用,并且可以显著加速查询效率。压缩本身肯定会增加CPU的压力,但相对于减少的I/O消耗来说,还是很值得的。

参考Oracle官方的说明:
As your database grows in size, consider using table compression. Compression saves disk space, reduces memory use in the database buffer cache, and can significantly speed query execution during reads. Compression has a cost in CPU overhead for data loading and DML. However, this cost might be offset by reduced I/O requirements

压缩表

压缩表,属于基本压缩(Compress for BASIC),只有当数据是直接路径插入或更新记录(direct-path insert and updated )时才会发生压缩。 并且支持有限的数据类型和SQL操作。

如何启用基本压缩?
1)通过create table语句中指定compress条件。
2)通过alter table .. compress; 来给现有表启用压缩;
3)通过alter table .. nocompress; 来禁用表压缩

对于压缩表,通过直接路径插入的数据,会占用更少的数据块。

压缩表的技术限制
  1. 不允许在压缩表上增加一个带默认值的列
  2. 不允许删除压缩表上的列
  3. 不支持在线段收缩(Online segment shrink)
  4. 不支持SecureFiles large objects
  5. 压缩表创建时默认设置PCT_FREE 为 0,除非手工指定

常见问题

压缩表的字段变更

在使用常规方式删除压缩表的字段时,可能会报:ORA-39726错误。
ORA-39726 unsupported add/drop column operation on compressed tables

为此,需要通过如下语句实现删除操作:

ALTER TABLE TABLE_NAME SET UNUSED COLUMN COLUMN_NAME;

参考资料

Oracle 表压缩(Table Compression)技术介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierre_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值