oracle 12c 表压缩,Oracle 12c中的表压缩技术

表压缩的功能11g中已有相关引入,但是在12c中,表的压缩选择更多,功能也更强,我们可以根据不同的业务需求及场景来选择。并且,表压缩也跟12c中一个新的特性相关。关于这个新的特性,我们下一篇文章再说。

压缩数据可以减少磁盘空间和内存占用,当然,最显著的,就是减少I/O,尤其是物理I/O。只不过,需要注意的是,启用压缩,会消耗额外的cpu资源,因为需要使用相关算法来完成数据的压缩和解压缩。

可以分别查询oracle官方文档

Oracle® Database SQL Language Reference 11.2

Oracle® Database SQL Language Reference 12.1

中的create table部分,来了解在11g和12c中表压缩部分的不同之处。

其中,11g中

compress 对应于12c中的compress basic;

compress for oltp,对应于12c中的compress row store compress basic/advanced。

接下来,看几个简单的启用压缩的例子:

数据库版本12.1.0.2,操作系统OEL 7.1

1,创建测试表

TEST1@ora12> create table tab_test (

2 id number,

3 name varchar2(30))

4 compress basic;

Table created.

TEST1@ora12> select table_name,compression,compress_for from user_tables;

TABLE_NAME COMPRESS COMPRESS_FOR

---------------------------------------------------------------

TAB_TEST ENABLED BASIC

2,修改压缩选项

TEST1@ora12> alter table tab_test row store compress advanced;

Table altered.

TEST1@ora12> select table_name,compression,compress_for from user_tables;

TABLE_NAME COMPRESS COMPRESS_FOR

---------------------------------------------------------------

TAB_TEST ENABLED ADVANCED

注:对已存在的表启用压缩,则不会压缩表中的已有数据。

也可以使用压缩子句来创建表空间

TEST1@ora12> conn / as sysdba

Connected.

SYS@ora12> create tablespace tbs_test default row store compress advanced datafile '/u01/oracle/oradata/ora12/tbs_test.dbf' size 10m;

Tablespace created.

以后创建在该表空间上的对象,默认都会启用压缩。

压缩选项的最后,还有column store compress for选项,

这个是混合列压缩的数据仓库选项和归档选项:

TEST1@ora12> alter table tab_test column store compress for archive low;

alter table tab_test column store compress for archive low

*

ERROR at line 1:

ORA-64307: Exadata Hybrid Columnar Compression is not supported for

tablespaces on this storage type

再测下另外一个:

TEST1@ora12> alter table tab_test column store compress for query high;

alter table tab_test column store compress for query high

*

ERROR at line 1:

ORA-64307: Exadata Hybrid Columnar Compression is not supported for

tablespaces on this storage type

可见,这两个都是针对Exadata环境下的存储才启用的。

关于Exadata的相关内容,这里不再多说。有兴趣的,请查阅Exadata相关技术文档。

当然,12c中,dbms_stats这个收集管理统计信息的系统包,也专门提供了支持Exadata的选项,oracle是铁了心的推广Exadata啊······

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值