设置 B 型树扫描程序索引压缩的级别

GBase 8s 提供若干方式来指定 B 型树扫描程序线程将压缩索引页的级别。要优化空间和事务处理,可以在索引增长迅速时降低压缩级别。 如果索引有很少的删除和插入操作或者执行批量更新,可以提升级别。

先决条件:
  • 确定调整索引压缩级别是否将改善性能。
  • 通过运行 onstat -g ppf 命令来获取关于读取、删除和插入的行数的统计信息。还可以查看 sysptprof 表中的信息。
  • 分析统计信息以确定是否希望更改阈值。
有关压缩级别和希望更改级别的情况的信息,请参阅 B 型树扫描程序索引压缩级别和事务处理性能

用以下任意选项指定实例的压缩级别:

示例

以如下方式将 BTSCANNER 配置参数的压缩选项设置为缺省值

BTSCANNER num=4,threshold=10000,rangesize=-1,alice=6,compression=default

以如下方式将 BTSCANNER 配置参数的压缩选项设置为

BTSCANNER num=4,threshold=5000,compression=high

使用 onmode -C 来指定压缩级别,如下所示:

onmode –C compression high

运行以下任一 SQL 管理 API 函数为具有分区编号 1048960 的索引的单个分段设置压缩级别:

EXECUTE FUNCTION TASK("SET INDEX COMPRESSION", 1048960, "DEFAULT");
EXECUTE FUNCTION ADMIN("SET INDEX COMPRESSION", 1048960, "LOW");

运行以下 SELECT 语句来对所有索引分段执行任务函数。此命令为名为 db1 的数据库中名为 idx1 的索引的所有分段设置压缩级别。

SELECT sysadmin:TASK("SET INDEX COMPRESSION", partnum, "MED")
FROM sysmaster:systabnames
WHERE dbsname = 'dbs1' AND tabname = 'idx1';

还可以运行以下 SELECT TASK 语句来对所有索引分段执行任务函数,并为所有分段设置压缩级别。

SELECT TASK("SET INDEX COMPRESSION", partn, "MED")
FROM dbs1:systables t, dbs1:sysfragments f
WHERE f.tabid = t.tabid AND f.fragtype = 'I' AND indexname ='idx1';