执行计划生成器需要使用表的统计信息,
以生成最有效的查询执行计划,
提高查询性能。
因此数据导入完成后,建议执行ANALYZE 语句生成最新的表统计信息。统计结果存储在
系统表PG_STATISTIC 中。
分析表
ANALYZE 支持的表类型有行/列存表。
ANALYZE 同时也支持对本地表的指定列进行信
息统计。下面以表的ANALYZE 为例,更多关于ANALYZE 的信息,请参见《GBase 8c
V5_3.0.0_SQL 手册》ANALYZE | ANALYSE。
步骤1 更新表统计信息。
以表product_info 为例,ANALYZE 命令如下:
postgres=# ANALYZE product_info;
ANALYZE
----结束
表自动分析
GBase 8c 提供GUC 参数autovacuum,用于控制数据库自动清理功能的启动。
autovacuum 设置为on 时,
系统定时启动autovacuum 线程来进行表自动分析,
如果表中
数据量发生较大变化达到阈值时,会触发表自动分析,即autoanalyze。
对于空表而言,当表中插入数据的行数大于50 时,会触发表自动进行ANALYZE。
对于表中已有数据的情况,
阈值设定为50+10%*reltuples,
其中reltuples 是表的总行数。
autovacuum 自动清理功能的生效还依赖于下面两个GUC 参数:
track_counts 参数需要设置为on,表示开启收集收据库统计数据功能。
autovacuum_max_workers 参数需要大于0,
该参数表示能同时运行的自动清理线程的最
大数量。
autoanalyze 只支持默认采样方式,不支持百分比采样方式。
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
331
多列统计信息仅支持百分比采样,因此autoanalyze 不收集多列统计信息。
autoanalyze 支持行存表和列存表,不支持外表、临时表、unlogged 表和toast 表。