DB2 V10.1 for Linux, UNIX, and Windows

在现有的表中启用压缩功能

通过使用 ALTER TABLE 语句,可修改现有表以利用压缩的节省存储空间的优点。

开始之前

必须决定要使用的压缩类型:自适应压缩、经典行压缩、值压缩还是值压缩与两种行压缩类型中的任一种的组合。自适应压缩和经典行压缩几乎始终能节省存储空间,因为它们会尝试将跨多列的数据模式替换为较短符号字符串。如果许多行的列包含相同值(例如,城市或国家/地区名称),或者列包含该列的数据类型的缺省值,那么值压缩功能也能节省存储空间。

过程

要在现有表中启用压缩,请执行以下操作:

  1. 发出 ALTER TABLE 语句。
    • 如果要使用自适应压缩,请包括 COMPRESS YES ADAPTIVE 子句。
    • 如果要使用经典行压缩,请包括 COMPRESS YES STATIC 子句。
    • 如果要使用值压缩,请为包含要压缩的值的每个列添加 ACTIVATE VALUE COMPRESSION 子句。如果要压缩包含系统缺省值的列中的数据,还应包括 COMPRESS SYSTEM DEFAULT 子句。
    您后续追加、插入、装入或更新的所有行将使用新的压缩格式。
  2. 可选: 要立即对表的所有现有行应用压缩,请使用 REORG TABLE 命令来执行表重组。如果此时不对所有行应用压缩,那么直到下一次您更新未压缩行或下一次运行 REORG TABLE 命令,这些行才会以新压缩格式存储。

示例

示例 1:以下语句对名为 CUSTOMER 的现有表应用自适应压缩:

   ALTER TABLE CUSTOMER COMPRESS YES ADAPTIVE

示例 2:以下语句对名为 CUSTOMER 的现有表应用经典行压缩:

   ALTER TABLE CUSTOMER COMPRESS YES STATIC

示例 3:以下语句对名为 EMPLOYEE_SALARY 的现有表的 SALARY 列应用行压缩、值压缩和系统缺省值压缩。然后重组该表。

ALTER TABLE EMPLOYEE_SALARY
ALTER SALARY COMPRESS SYSTEM DEFAULT
COMPRESS YES ACTIVATE VALUE COMPRESSION;

REORG TABLE EMPLOYEE_SALARY