在 DB2 for Linux, Unix, and Windows 中的行压缩的最佳实践
2009-02-08 16:38:31 来源:WEB开发网重新装载一部分数据,它们可以代表所有数据。
使用 ALER TABLE … COMPRESS YES 来对表启用压缩。
使用 REORG TABLE 来建立压缩字典和压缩现有表中的数据。更多使用 REORG 命令的信息擦看上面的讨论。
装载剩下的数据。它们将在装载过程中使用数据压缩字典进行压缩。这张表中所有后来的数据都将进行压缩。
你可能有一张表已经启用了行压缩,并且你已经判断出需要重新创建压缩字典,你基于使用 RUNSTATS 命令和使用之前讨论过的 ADMIN_GET_TAB_COMPRESS_INFO 表函数得出的判断。 根据你的环境和状态,你可能想使用 REORG RESETDICTIONARY 命令(使用前面讨论的复制和重命名方法)和卸载数据然后重新装载以压缩表中数据
控制压缩表的增长
你或许工作在这样一个环境中,你向表中添加数据时基于时间周期的,比如每天、每周、每月、每季等等。 你应该基于选中的时间周期对你的压缩表添加分区。例如,你想添加每月销售数据到一张表。
通过使用 COMPRESS YES 选项来更改表,对销售表启用压缩。
为一个特定范围创建一个新的销售表,并启用压缩。
这个月数据被装载到新的销售表中。
在这个月月底,通过使用 RESETDICTIONARY 选项的重组来压缩新的销售表。
把新的销售表作为一张表分区添加到销售表中。
ALTER TABLE sales ATTACH PARTITION mar08
STARTING '03/01/2008' ENDING '03/31/2008' FROM TABLE newsales
每个与你都可以添加另外的分区到销售表。
监控压缩效率
如前面所提到的,你可以使用 SQL 管理函数 ADMIN_GET_TAB_COMPRESS_INFO 来查看创建压缩字典使用的信息(在使用 REPORT 模式时),或者查看使用压缩是否可能在表中节省空间的信息并和当前表中已有数据做比较(当使用 ESTIMATE 模式时)。 <TIP>RUNSTATS 可以用于查看数据压缩字典的效果随着时间推移在增减新数据到表中后是否会发生改变。通过监控 RUNSTATS 结果,你可以判断什么时候使用 SQL 管理函数来对压缩节省的空间进行一次新的评估。
更多精彩
赞助商链接