使用 ALTER TABLE 语句的 Statistics Options 子句更改分片表或未分片表的 STATCHANGE 属性的值,和分片表的 STATLEVEL 属性的值。这些表属性控制重新计算的阈值和数据分布统计信息的粒度。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
change_ threshold | 定义过时的分布统计信息的已更改数据的百分比 | 必须是在 0 - 100 内的整数 | 文字的数值 |
Statistics 选项子句可修改表的统计属性以允许用户控制 UPDATE STATISTICS 操作(当此 SQL 语句在一个分片表上以 LOW 、MEDIUM 或 HIGH 的方式运行时)。 ALTER TABLE 语句可以修改这些属性的指定的或缺省值(这些值在表创建时设置或者它们是由之前的 ALTER TABLE 语句设置的)。
Statistics 选项子句可将这两个表的属性设置为 STATCHANGE 和 STATLEVEL:
STATCHANGE 表指定需要考虑统计过时的更改的最小百分比(从该表中行的 UPDATE 、DELETE 和 INSERT 操作或从上次计算分布统计信息的分片)。您可以指定 0 - 100 内的整数作为更改的百分比,或使用 AUTO 关键字应用在 ONCOFIG 文件或会话环境中的当前的 STATCHANGE 配置参数作为缺省的更改的阈值。
UPDATE STATISTICS 语句的 AUTO 关键字也能启用比较用 STATCHANGE 已更改的设置值确定系统目录中的`统计信息是否过时的行的比例。包含 AUTO 关键字的UPDATE STATISTICS 语句只在当前的 UPDATE STATISTICS 操作期间启动旧的统计的检查(并只选择性地更新过时或丢失统计信息的表或分片)。
当 AUTO_STAT_MODE 配置参数或 AUTO_STAT_MODE 会话环境变量启用了自动方式,UPDATE STATISTICS 语句使用显式或缺省的 STATCHANGE 值辨别表、索引或统计信息丢失或过时的分片存储策略,并只更改丢失的或过时的统计信息。有关 UPDATE STATISTICS 操作的自动方式的信息,请参阅 GBase 8s 管理员参考 中有关 AUTO_STAT_MODE 的信息。
会经常应用这些属性。如果该 STATLEVEL 设置为 AUTO ,则此设置会重写缺省值。
ALTER TABLE tabFrag STATLEVEL TABLE; UPDATE STATISTICS LOW FOR TABLE tabFrag (smartblob) DROP DISTRIBUTIONS UPDATE STATISTICS HIGH FOR TABLE tabFrag (smartblob);以上最后一条语句,缺省的 0.5 HIGH 决议意味着 tabFrag.smartblob 分布统计信息基于近似 200 bins 。