删除压缩字典

可删除特定表或分段的不活动压缩字典,删除所有不活动压缩字典,或删除达到指定日期的所有不活动压缩字典。删除为表和分段创建的任何压缩字典之前,必须解压缩表和分段,以使字典处于不活动状态。

请勿除去 Enterprise Replication 需要的压缩字典。

不能删除为索引创建的压缩字典。删除索引时,数据库服务器会除去这些压缩字典。

先决条件
  • 您必须可以连接到 sysadmin 数据库(缺省情况下只有用户 gbasedbt 可连接),并且必须是 DBSA。
  • 删除关联字典之前,请解压缩或删除表或分段。只能删除压缩表或分段不再使用的压缩字典。
  • 确保 Enterprise Replication 函数未将压缩字典用于较旧的日志。
  • 归档包含具有压缩字典的表或分段的任何数据库空间,即使表或分段中的数据已解压缩并且字典不再处于活动状态。
要删除不再需要的一个或多个压缩字典,请执行以下操作:
运行带以下自变量的 admin()task() 函数:
  • table purge_dictionaryfragment purge_dictionary 命令自变量,用于删除特定的不活动字典。
  • compression purge_dictionary 命令自变量,用于删除所有字典。
  • compression purge_dictionary 命令自变量和日期,用于删除该日期及之前创建的所有字典。

    任何可根据您的语言环境转换为 DATE 数据类型格式的日期均可使用。 例如,可以指定 01/31/201201/31/12Jan 31, 2012

示例 1:运行以下命令可除去所有者为“arlette”的“music”数据库中表“latin”的不活动字典。

EXECUTE FUNCTION task(“table purge_dictionary", 
“latin”, “music”, “arlette”);

示例 2:运行以下命令可除去 2011 年 3 月 8 日及之前创建的所有字典:

EXECUTE FUNCTION task(“compression purge_dictionary”, "03/08/11");

压缩表时,数据库服务器会创建一个内部分区用于保存压缩字典。解压缩表和清除字典时,数据库服务器会除去该字典。 但是,内部分区不会除去。如果为保存字典而创建的内部分区位于第二个块上,那么可能会有一个块只包含内部分区。 如果发生此情况,将无法删除该块。可以备份数据库空间,然后将其删除。