创建压缩字典

可根据现有行创建压缩字典,以供 GBase 8s 压缩表或表分段中的数据时使用。创建字典之后,GBase 8s 将使用该字典来压缩新插入或更新的行。

如果没有压缩字典,您也可以在运行压缩命令时创建。这两个命令的唯一差别是压缩命令还将压缩表或分段中的现有数据。

如果数据已装入表中,并且您要创建字典以用于在装入数据时压缩新数据,那么可以为该表创建压缩字典。

该表或分段必须至少包含 2000 行数据,然后数据库服务器才能创建压缩字典。如果创建字典时,表或分段没有足够的数据用于字典,那么该表或分段将设置为自动压缩。然后,在该表或分段中装入了足够的数据后,数据库服务器将自动创建该字典。

有关压缩字典的一般信息,请参阅压缩字典

先决条件

要创建压缩字典,请执行以下操作:

运行带 table create_dictionaryfragment create_dictionary 自变量的 admin()task() 函数。
例如:
  • 为表指定信息,如下所示:
    EXECUTE FUNCTION task(“table create_dictionary”, “table_name”, 
    “database_name”, “owner_name”);

    必须指定表名。数据库和所有者名称可选。 如果不指定数据库或所有者名称,GBase 8s 将使用当前数据库和所有者名称。

  • 为分段指定信息,如下所示:
    EXECUTE FUNCTION task(“fragment create_dictionary”, “partnum_list”);

    partnum_list 列出了分区号,以空格分隔。

以下示例显示了这样的一个命令:指示 GBase 8s 为所有者为“shakar”的“music”数据库内名为“classical”的表创建压缩字典。

EXECUTE FUNCTION task("table create_dictionary","classical","music","shakar");

要在创建压缩字典之后压缩现有表或分段行中的数据,必须运行压缩命令。

只有在解压缩表或分段之后,才能删除压缩字典。