自动优化数据存储

可通过更新 auto_crsd 调度程序任务,为表和扩展数据块配置自动压缩、收缩、重新打包和取消分段。

必须以用户 gbasedbt 或其他授权用户身份连接 sysadmin 数据库。

要启用和配置自动存储优化,请执行以下操作:

  1. 通过在 ph_task 表上使用 UPDATE 语句将 tk_enable 列的值设置为 T,从而启用 auto_crsd 调度程序任务。例如,以下语句启用 auto_crsd 任务:
    UPDATE ph_task
      SET tk_enable = 'T'
      WHERE tk_name = 'auto_crsd';
  2. 可选:通过在 ph_threshold 表上使用 UPDATE 语句来将阈值的 value 列设置为 F,从而禁用单个操作:
    • AUTOCOMPRESS_ENABLED:控制压缩
    • AUTOREPACK_ENABLED:控制重新打包
    • AUTOSHRINK_ENABLED:控制收缩
    • AUTODEFRAG_ENABLED:控制取消分段
    例如,以下语句只禁用 auto_crsd 任务的取消分段存储操作:
    UPDATE ph_threshold
      SET value = 'F'
      WHERE name = 'AUTODEFRAG_ENABLED';
  3. 可选:通过在 ph_threshold 表上使用 UPDATE 语句来更改阈值的 value 列的值,从而更改单个操作的阈值:
    • AUTOCOMPRESS_ROWS:压缩的阈值是未压缩行数。缺省阈值为 10 000 行。在未压缩行数超过 10 000 时,将压缩表。
    • AUTOREPACK_SPACE:重新打包的阈值为非邻接空间的百分比。缺省值为 90%。在表占用的空间中 90% 以上的空间非连续时,将重新打包该表。
    • AUTOSHRINK_UNUSED:表或分段的收缩阈值是已分配的未用空间的百分比。缺省值为 50%。在 50% 以上的已分配空间未被使用时,将收缩表或分段。
    • AUTODEFRAG_EXTENTS:表或分段扩展数据块的取消分段阈值是扩展数据块的数量。缺省值为 100。在扩展数据块的数量超过 100 时,将对表或分段执行取消分段操作。
    例如,以下语句将压缩阈值更改为 5000 行:
    UPDATE ph_threshold
      SET value = '5000'
      WHERE name = 'AUTOCOMPRESS_ROWS';

或者,除了运行已调度的自动压缩任务之外,还可以通过 SQL 管理 API create dictionary 命令或初始 compress 命令来启用自动压缩。对表或表分段运行 SQL 管理 API create dictionary 命令或初始 compress 命令时,将启用后续数据装入(包含 2000 行或更多行数据)的自动压缩。

您还可以使用 CREATE TABLE 语句的 COMPRESSED 选项来支持在将数据装入表或表分段时对大量行内数据执行自动压缩。CREATE TABLE 语句的 COMPRESSED 选项不支持对数据库空间或索引中的简单大对象执行自动压缩。