使用 ALTER TABLE 语句的 Statistics Options 子句更改分片表或未分片表的 STATCHANGE 属性的值,和分片表的 STATLEVEL 属性的值。这些表属性控制重新计算的阈值和数据分布统计信息的粒度。
用法
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 作为缺省值):
⚫ TABLE 指定的该表的所有分布存储以表级别创建。
⚫ FRAGMENT 指定的分布是创建和维护每个分片。
⚫ AUTO 指定数据库服务器在运行时决定分片级别分布是否重要的标准。这些标准需要需要以下条件为真:
o SYSSBSPACENAME 配置参数设置指定了一个现有的 sbspace
o 该表按 EXPRESSION 、INTERVAL 、Rolling Window 、或 LIST 策略分片
o 该表有超过 100 万行
如果任何一种标准没有满足,那么数据库服务器创建表级别分布而不是分片级别分布。
会经常应用这些属性。如果该 STATLEVEL 设置为 AUTO ,则此设置会重写缺省值。
注: 当初始化数据库服务器时,必须设置 SYSSBSPACENAME 配置参数,指定数据库服务器存储分片级别数据分布统计信息的 sbspace 。它们作为存储在 syfragsdist 系统目录表的 encdist 列 中 BLOB 对象。为了使数据库服务器支持分配级别统计信息,SYSSBSPACENAME 配置参数设置必须指定一个现有的 sbspace 。
如果您使用 Statistics 选项子句将 STATLEVEL 属性设置为 FRAGMENT ,且以下条件之一为真时,数据库服务器返回错误 -9814(“Invalid default sbspace name”):
⚫ 未设置 SYSSBSPACENAME 配置参数
⚫ 按 onspaces -c -S 命令分配给 SYSSBSPACENAME 指定的 sbspace 不合适。
GBase8s数据库ALTER TABLE 语句的 Statistics 选项
最新推荐文章于 2024-06-26 15:02:49 发布