一定数量的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数据行压缩功能,并通过实际的例子来帮助大家理解和提高。
_compress文件
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
zlib——compress.c文件分析
下面代码是上一篇博客所讲的zpipe.c,主要用于和compress.c文件进行对比。#include <stdio.h>#include <string
zlib #include sed #define -
compress命令
compress命令可以压缩文件,而tar命令只是归档
职场 休闲 压缩 compress -
Compress Words
"E. Compress Words" 直接套 KMP 即可(那为什么打 cf 的时候
字符串 KMP 前缀函数 前缀数组 ios -
git compress变大 git文件太大
【前言】 最近遇到一个git文件过大的问题,针对这个问题进行了研究,在此与大家共享。【探索之路】 一、问题 我们需要改造一个别的团队开发的系统;开始的时候将代码以及和代码相关的一些东西放到了我们的gitLab上;
git compress变大 git文件过大 git 优化 d3 -
基于 Reactor 模式的 HTTP 协议扩展实现
reactor,http
#http #网络 #网络协议 #学习 #c++ -
Android实现类似execel的表格能回显并能修改表格内容(附带源码)
Android实现类似execel的表格能回显并能修改表格内容(附带源码)
#android android Text 数据
















