热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle(11gR2)中的表压缩

oracle提供的压缩方式及特性oracle提高了4总压缩方式,分别适用不同的场景。分别是:basiccompression:压缩度高,CPU开销最低

oracle 提供的压缩方式及特性oracle 提高了4总压缩方式,分别适用不同的场景。分别是:basic compression:压缩度高,CPU开销最低

压缩的好处

压缩是一项更适合于数据仓库环境的一项Oracle 特性。压缩的好处包括以下两个方面:

1、节省存储空间,,对应海量的数据来说非常有意义。

2、查询性能将会提高(不是绝对会提高),因为物理I/O 减少,并且提高了内存中数据块的命中率。

不利的方面:

可能增加CPU 的负载。影响DML操作的性能。表中的碎片增多,浪费存储空间。更多详细的说明请参考:

造成这些结果,主要是因为误用了表压缩技术,因为表压缩技术是一项更适合于数据仓库环境的一项oracle 特性。即数据主要是用作查询目的,很少涉及DML操作。

oracle 提供的压缩方式及特性

oracle 提高了4总压缩方式,分别适用不同的场景。分别是:

basic compression:压缩度高,CPU开销最低,适用于DDS。

OLTP compression : 压缩度高,CPU开销最低,适用于OLTP,DDS。

注:压缩可以指定在表空间级,表级,分区级。如果表空间带有压缩属性那么其中的表默认也带有压缩属性,但是表级的压缩属性可以覆盖表空间级的压缩属性,表的压缩属性与分区的压缩属性的关系也是这样的。以下主要讲的是表的压缩。

另外有两种压缩方式,不过这两种压缩方式使用范围有限:

SQL> create table object_copy compress for query

2 as select * from dba_objects;

as select * from dba_objects

*

ERROR at line 2:

ORA-64307: hybrid columnar compression is only supported in tablespaces

residing on Exadata storage

也就是说使用混合柱状压缩表空间需要位于exadata一体机上面。更多关于柱状压缩的资料,可以参考:

创建表的时候通过指定compress basic 关键字使表使用basic compression的压缩方式。如果只使用compress 关键字不指定压缩方式,默认是basic方式。使用basic 方式压缩的特性在于:使用直接路径insert 的记录是压缩的,update 操作相当于解压缩。

SQL> create table objects_1

2 compress basic

3 as select object_id,object_name

4 from dba_objects;

Table created.

SQL> create table objects_1

2 compress basic

3 as select object_id,object_name

4 from dba_objects;

Table created.

指定OLTP方式的压缩方法指定关键字:compress for oltp。OLTP方式的压缩方式特性

在于:使用直接路径insert 的记录依然是压缩的,传统的insert 语句插入的记录也是压缩的,update 语句操作过后数据依然是压缩的。

linux

推荐阅读
author-avatar
wang静的天空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有