index compress repack shrink 参数:优化 B-tree 索引的存储(SQL 管理 API)

随同 admin()task() 函数,使用 index compress repack shrink 参数来压缩分离的 B-tree 索引,合并空闲空间(重新打包)并归还分区中的空闲空间(收缩)。

语法:索引压缩命令参数

命令参数

下表包含每一参数的简要说明。

表 1. 索引压缩操作的参数
参数 描述
compress 压缩索引。
parallel 并行地运行压缩或重新打包操作。为每一表的分片或分片列表启动一个线程,且跨越这些分片并行地运行该操作。
repack 通过将数据移到索引的前部来合并空闲空间。
shrink 将索引末端的空闲空间归还到 dbspace,从而减少索引的总大小。

命令元素

下表显示您可用来压缩、重新打包和收缩索引的元素。

表 2. 索引压缩命令元素
元素 描述 关键考虑
index_name 您想要压缩的索引名称。 要求的。

您必须使用系统目录表中相同的大写或小写字母。

database_name 包含您想要压缩的索引的数据库名。 可选的。

如果您未指定数据库,则数据库服务器使用当前的数据库。

如果您输入数据库名,则必须使用与系统目录表中相同的大写或小写字母。

owner 包含您想要压缩的索引的数据库的所有者名。 可选的。

如果您未指定所有者,则数据库服务器使用当前的所有者。

如果您输入所有者名,则必须使用与系统目录表中相同的大写或小写字母。

用法

您可压缩一个在分片的或未分片的表上分离的 B-tree 索引。

要被压缩,索引必须有至少 2000 个键。如果索引内的分片没有至少 2000 个键,则当创建索引时数据库服务器不压缩索引或分片。即使有新的键添加到索引,索引也保持不压缩。如果您想要压缩该索引,请运行另一个带有 index compress 参数的 SQL 管理 API task()admin() 函数。

要确定索引是否包含最小键数,请运行 oncheck -pT 命令并查看 Number of keys 域中的信息。

通常情况下,请您在压缩操作之后执行重新打包操作,并在重新操作之后执行收缩。

压缩操作仅压缩索引的叶子(底层)。

你可取消操作,例如在 DB-Access 中按下 CTRL-C。

你不可解压缩索引。如果您想要解压缩索引,则可删除压缩的索引并重新创建它。

示例

下列命令并行地压缩、重新打包并收缩索引。

EXECUTE FUNCTION task("index compress repack shrink parallel",
"ind5", "customer", "jayson");