从Oracle 9i
开始,Oracle
数据库就提供一种表的数据压缩特性。它可以显著地减少磁盘空间占用,并且在表的数据查询时也会减少该表内存读的量,该机制也会提升查询性能。
这种特性通常在数据仓库类应用中广泛使用。
(miki
西游 @mikixiyou
原文链接: http://mikixiyou.iteye.com/blog/1600337
)
1
、表的压缩原理
Oracle
的压缩特性是在一个数据块中通过消除相同值而实现。一个数据块中任何重复出现的值会被同一个块中“
symbol
table ”
的一个“symbol
向量”
代替。例如,在一个数据块中某行中一个列的值为“welcome stanford ”
,还有4
行中此列的值也是“welcome stanford ”
,在压缩以后,它该值只会存储一次,剩下的四次都会被一个“symbol
向量”
代替。“symbol
向量”
的字节数会远远比原来的值要小很多。
2
、表的压缩语法
alter table
TABLE_MIKIXIYOU
move compress;
这里压缩的表为TABLE_MIKIXIYOU
。
3
、表的压缩测试
首先记录下将要压缩的表的体积,为1408MB
。
SQL> select segment_name,(bytes/1024/1024) as mbb
from user_segments_1 t where t.segment_name='CMS_DOC_SINGLE_ATTR';
SEGMENT_NAME
MBB
-------------
----------
TABLE_MIKIXIYOU 1408
然后,执行压缩操作,注意压缩期间该表不能写。
alter table TABLE_MIKIXIYOUmove compress;
在压缩过程中会以TM 6
级锁表。
最后,压缩结束得到压缩结果为920MB
。
SQL> select segment_name,(bytes/1024/1024) as mbb
from user_segments_1 t where t.segment_name='CMS_DOC_SINGLE_ATTR';
SEGMENT_NAME
MBB
-------------
----------
TABLE_MIKIXIYOU 920
从结果看,压缩比率为65%
,是可以节省一定的空间的。
4
、总结
压缩特性在数据仓库环境中可以最优使用,尤其是对事实表而言。因为压缩在一个数据块中进行的,所以数据块的大小越大越好,数据仓库上数据块的设置通常也是比较大的。它还能提升查询性能,因为在同样记录数下数据块数变小了。
当然,压缩特性也可以应用在OLTP
应用类数据库上。但如果并发写入多的话,可能会出现严重的等待。
分享到:
相关推荐
Oracle Database 11g Release 1 (11gR1) 引入了一项重要的新特性——OLTP(Online Transaction Processing)表压缩。这一功能允许数据库在执行常规的数据维护操作,如INSERT和UPDATE时自动对数据进行压缩,这不仅...
新的分区技术如范围分区上的压缩和分区交换的并行化,提高了大型表的管理效率。 6. 存储优化(Storage Optimization): Oracle 12c引入了压缩功能的增强,如自动压缩和统一压缩,可以根据数据类型和访问模式自动...
总的来说,Oracle 的数据段压缩技术提供了多种方式来优化存储效率,包括在创建表时启用压缩、压缩已存在的表和分区表以及压缩索引。在实际应用中,应根据数据的特性以及存储需求,合理选择合适的压缩策略,以达到...
【Oracle 数据库传输表空间的数据压缩解决方案】 在Oracle数据库中,数据压缩是一种有效的节省存储空间的方法,尤其在处理大量数据时。本文针对某电信计费系统由于业务政策导致的数据量急剧增长,影响了系统的稳定...
Oracle数据库本身提供了压缩选项,可以在备份时直接对数据进行压缩,或者在创建表时启用压缩特性。在Windows环境下,可以利用WinRAR等第三方压缩软件的API接口,结合Delphi编写程序,实现在备份完成后自动对备份文件...
总结起来,Oracle 11g数据库的OLTP表压缩特性是一种强大的工具,适合于需要高效处理大量数据的环境。通过实验验证,压缩技术能够显著减少存储空间,提高全表扫描操作的速度,而在数据更新和查询操作上保持与非压缩表...
#### 三、Oracle数据库11g中的新压缩特性 1. **在线事务处理(OLTP)表压缩**: - 允许在所有类型的数据处理操作中压缩结构化数据。 - 使用复杂的智能算法,在写入操作期间将压缩开销降至最低,适用于所有应用程序...
Oracle从9i开始羞羞答答的引入表级压缩,但实际的贡献就不怎么样,Oracle11g专门推出了一个叫做Advance Compression的组件,全面支持普通表压缩、非结构化数据压缩等各类压缩技术;Auto Memory Management是Oracle10...
Oracle Database 12c是Oracle公司推出的一个重要版本,它带来了许多创新特性和改进,旨在提升数据库性能、可扩展性和管理效率。以下是其中32个关键新特性的概述,结合实际案例进行分析: 1. **多租户架构...
此外,Oracle 19c 还提供了多种数据库进化技术,如自动分区、并发控制、数据压缩等,以提高数据库的可扩展性和可靠性。 三、多租户和数据库整合 Oracle 19c 新特性中,多租户和数据库整合是两个重要的特性。多租户...
- 创建和使用表分区,根据数据特性分布数据,提高查询效率和空间利用率。 综上所述,Oracle表空间的回收是数据库维护的重要环节,涉及到一系列复杂操作。通过有效的回收策略和适当的脚本,可以显著提高数据库的...
本篇文章将深入对比Oracle与DB2的关键特性,帮助读者理解两者之间的差异。 一、Oracle特性 1. **高性能**: Oracle数据库以其强大的并行处理能力和优化器而闻名,能够高效处理大量数据和复杂查询。其Real ...
而附录B介绍了Oracle 11gR2中的压缩特性,虽然与10gR2略有不同,但可以提供更全面的压缩理解。 总之,Oracle 10gR2的压缩技术是优化数据库存储和性能的有效工具,但实施前需要充分了解其特性和潜在影响,以确保最佳...
多态表支持是 Oracle 18c 中的一项新特性,支持自描述和全动态 SQL,旨在简化复杂的算法实现: 1. **隐藏算法的实现**:简化了开发者的工作,让他们可以专注于业务逻辑而非底层算法实现。 2. **利用强大的动态 SQL ...
Oracle11gR2数据库新特性: 自动内存管理 ADDM for RAC 数据卫士( Dataguard )技术革新 闪回技术 闪回存档 RAC和ASM RAC One Node ASM 数据安全 Database Vault Audit Vault 高级压缩 OLAP表压缩 LOB字段压缩 ...
Oracle数据库管理艺术:10g的姊妹篇,专门讲述11g新特性,有希望了解11g的朋友们下载吧。
Oracle数据库管理艺术:10g的姊妹篇,只能讲述11g方面的新特性。对希望进一步深入学习11g的朋友十分有帮助
本资源详细探讨了Oracle 11g的关键新特性,对于深入理解这一数据库管理系统具有极大的价值。 1. **Real Application Clusters (RAC)增强** Oracle 11g的RAC功能得到了显著提升,增强了集群的可用性和性能。新特性...
Oracle数据库是全球广泛使用的数据库管理系统之一,其每个新版本都会带来一些创新特性和性能提升。在Oracle 19c和20c这两个版本中,Oracle公司持续优化了数据库的性能、安全性和易用性,引入了许多重要更新。下面将...