一定数量的CPU资源被用于在执行数据存储对其进行压缩,之后,当外部存储设备读取时,数据又被解压缩。然而,数据压缩也能够提供性能方面的好处,因为更多的数据存储在更小的空间内(在DASD上和缓冲池中);同未经压缩的数据相比,这样可以产生更少的同时读取、更小的I/O等。
在版本9之前,DB2有三种方式的压缩,分别是空间值压缩(VALUE COMPRESS子句)、索引压缩(MDC技术)和数据库备份压缩。
使用空间值压缩(VALUE COMPRESS子句)时,不会将变长数据类型(VARCHAR、VARGRAPHICS、LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB和DBCLOB)的 空值(NULL)和零长度数据存储在磁盘上。只有与这些数据类型相关联的开销值才会占用磁盘空间。如果使用了VALUE COMPRESS,那么还可以使用可选COMPRESS SYSTEM DEFAULT选项来进一步减少磁盘空间的使用量。如果插入的或更新的值等于列的数据类型的系统缺省值,那么使用的磁盘空间最少。缺省值将不会存储在磁盘上。支持COMPRESS SYSTEM DEFAULT的数据类型包括所有数字类型列、定长字符和定长图形字符串数据类型。这表示零和空格可以压缩。
通过在创建表的时候指定ORGANIZE BY DIMENSIONS选项,将对表的启用MDC功能,可以指定一个或多个键作纬。MDC是使用基于块的索引, 块索引指向记录块或记录组,而不是指向单个记录。通过从物理上根据群集值将MDC表中的数据组织成块,然后使用块索引来存取这些块,能显著地改善性能。在MDC中,群集索引是基于块的。这些索引比常规的基于记录的索引要小很多,因此,占用的磁盘空间更少,并且扫描时速度会更快。
如果数据库中的数据量比较大,可以在备份数据库的时候通过指定COMPRESS选项使用备份压缩功能,从而是备份映像文件需要的存储空间最小。
DB2 V9新增了可用来压缩数据对象的基于字典的行压缩功能。在压缩数据时,通过使用较少的数据库页来表示相同数据,从而达到节省磁盘存储空间的目的。对于那些行中包含重复模式的大型表,将能从此功能中受益。数据行压缩(COMPRESS子句)可与现有的空间值压缩(VALUE COMPRESS子句)一起使用。对于使用行压缩的表,查询性能可能有所提高。可能需要更少的 I/O 操作来访问压缩数据,并且在压缩后,可以将更多数据高速缓存在缓冲池中。由于用户数据压缩在日志记录内,因此日志记录可能会变小。对于 UPDATE 日志记录,则可能不会出现这种情况。与行压缩关联的成本取决于压缩和解压缩数据所需的额外 CPU 周期。在访问行中的数据时,压缩和解压缩是以行为单位执行的。要评估使用行压缩后存储器的节省情况,可使用 DB2 INSPECT 联机实用程序的 ROWCOMPESTIMATE 选项。在启用了表的COMPRESS 属性并创建了压缩字典之后,才可压缩行。可通过 CREATE 或 ALTER TABLE 语句来设置 COMPRESS 属性。可使用 REORG TABLE 命令来创建压缩字典。在处理 REORG
命令时,现有的所有表行都要被压缩。数据行压缩不适用于索引、LOB、LF 或 XML 对象。
在将表存储在磁盘上时,如果对数据行、空值和系统缺省值使用诸如压缩之类的功能,则表可能占用较少的空间。通过数据压缩,可以使用较少的数据库页来存储数据,从而节省磁盘存储空间。由于每页可以存储更多的逻辑数据,因此访问同样多的逻辑数据时需要读取的页数将会少一些。这意味着压缩还可以节省磁盘I/O。I/O速度也会加快,因为可以将更多的逻辑数据高速缓存在缓冲池中。
由于数据行压缩是DB2 V9新增的功能,所以很多用户对其特性不是很了解,本文将重点介绍DB2 V9数据行压缩功能,并通过实际的例子来帮助大家理解和提高。
分享到:
相关推荐
设计实现三元组顺序表压缩存储表示的稀疏矩阵的转置。
通过大量的知识资源搜索,总结自己了解的五种压缩算法:LZSS(字典算法)、LZW(串表压缩算法)、Hfm(霍夫曼压算法)、LZ77(滑动窗口算法)、LZAM(数据压缩算法)。 有兴趣的同学自己百度一下各种算法实现原理。 ...
Oracle数据库的表压缩技术是一种高效的空间管理策略,旨在节省存储空间并提高性能,尤其是在处理大量数据的场景下,如数据仓库。自Oracle 10g Release 2开始,Oracle引入了这一独特的技术,通过消除数据库块中的重复...
Oracle 11g数据库的OLTP(在线事务处理)表压缩功能是针对大规模数据处理场景的一种优化策略,旨在提高存储效率并提升数据库性能。在OLTP系统中,数据库需要频繁地执行插入、更新、删除等操作,同时保持快速的查询...
表压缩的工作原理是删除在数据库表中发现的重复数据值,以节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现...
sql学习 压缩技术1_表压缩.sql
5. **串表压缩算法**:串表压缩,也称为LZW压缩,是一种动态字典编码技术,通过建立字典记录已出现的字符串,不断扩展字典并编码新的字符串,达到压缩效果。在PostScript和GIF图像格式中广泛应用。 6. **线性分组码...
SQL Server 2008中的数据表压缩功能是一项旨在优化存储效率和性能的重要特性。它在SQL Server 2005引入的vardecimal存储格式基础上进行了扩展,提供了行压缩和页面压缩两种压缩方式,适用于不同场景的需求。 1. **...
利用LZW算法对文本信息进行压缩。ZW算法又叫“串表压缩算法”就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。 LZW压缩算法是Unisys的专利,有效期到2003年,所以对它的使用已经没有限制了
压缩空气流量与管径对照表 压缩空气流量与管径对照表是一种重要的技术安全标准,旨在确保压缩空气系统的安全运行。该标准提供了压缩空气流量与管径的对照表格,帮助用户快速确定所需的压缩空气流量和管径尺寸。 ...
"监控历史表压缩.docx"文档可能提供了关于如何监控数据库性能、存储使用情况和压缩效果的指南。通过监控,我们可以了解拆分和压缩操作对系统的影响,及时调整策略,以达到最佳的资源利用率。 总的来说,历史表拆分...
它采用了一种先进的串表压缩,将每个第一次出现的串放在一个串表中,用一个数字来表示串,压缩文件只存贮数字,则不存贮串,从而使图象文件的压缩效率得到较大的提高。奇妙的是,不管是在压缩还是在解压缩的过程中都...
基于正则表达式进行深度报文检测...将DFA状态转换表拆分成3个表,使用run-length编码进行压缩,并对压缩方法进行了优化。采用l7-filter中几个常用应用程序的正则表达式进行测试,结果表明该方法压缩效果一般在90%以上。
- 基础表压缩是Oracle Database 11g EE(企业版)的基本特性之一,而OLTP表压缩则是OAC组件的一部分,需要额外的许可。 #### 结论 通过以上介绍可以看出,Oracle Database 11g 的OLTP压缩是一项强大的工具,可以...
- estimate_compression命令用于评估执行数据表压缩后可能带来的存储空间节省。 以上就是基于给定文件信息中关于Informix 11.5 数据压缩和存储优化知识点的详细解析。这些内容对于数据库管理员而言是极其重要的,...
lz4:接收bytea类型的数据,返回压缩后的bytea类型数据 un_lz4:接收bytea类型的数据,返回解压后的bytea类型数据 lz4_utf8:接收utf8编码的文本数据,返回解压后的bytea类型数据 un_lz4_utf8:接收bytea类型的数据...
1. 词汇表压缩:词汇表包含所有唯一词项的列表,可以采用字典压缩算法(如Huffman编码)来减少存储空间。 2. 倒排列表压缩:倒排列表中记录了包含词项的所有文档的信息,可以通过差分编码(Delta encoding)降低...
### Oracle数据库中的表压缩技术详解 #### 一、概述 Oracle数据库提供了多种压缩技术来减少存储空间的需求,提高I/O效率。这些技术包括基本压缩(Basic Compression)、在线事务处理压缩(OLTP Compression)、仓库压缩...