ANALYZE TABLE
功能
创建手动采集任务,进行 CBO 统计信息采集。手动采集默认为同步操作。您也可以将手动任务设置为异步,执行命令后,会立即返回命令的状态,但是统计信息采集任务会在后台运行,运行的状态可以使用 SHOW ANALYZE STATUS 查看。手动任务创建后仅会执行一次,无需手动删除。
手动采集基础统计信息
关于基础统计信息,请参见CBO 统计信息。
语法
ANALYZE [FULL|SAMPLE] TABLE tbl_name (col_name [,col_name])
[WITH SYNC | ASYNC MODE]
PROPERTIES (property [,property])
参数说明
-
采集类型
- FULL:全量采集。
- SAMPLE:抽样采集。
- 如果不指定采集类型,默认为全量采集。
-
WITH SYNC | ASYNC MODE
: 如果不指定,默认为同步操作。 -
col_name
: 要采集统计信息的列,多列使用逗号分隔。如果不指定,表示采集整张表的信息。 -
PROPERTIES: 采集任务的自定义参数。如果不配置,则采用
fe.conf
中的默认配置。任务实际执行中使用的 PROPERTIES,可以通过 SHOW ANALYZE STATUS 返回结果中的Properties
列查看。
PROPERTIES | 类型 | 默认值 | 说明 |
---|---|---|---|
statistic_sample_collect_rows | INT | 200000 | 最小采样行数。如果参数取值超过了实际的表行数,默认进行全量采集。 |
示例
示例1:手动全量采集
-- 手动全量采集指定表的统计信息,使用默认配置。
ANALYZE TABLE tbl_name;
-- 手动全量采集指定表的统计信息,使用默认配置。
ANALYZE FULL TABLE tbl_name;
-- 手动全量采集指定表指定列的统计信息,使用默认配置。
ANALYZE TABLE tbl_name(c1, c2, c3);
示例2:手动抽样采集
-- 手动抽样采集指定表的统计信息,使用默认配置。
ANALYZE SAMPLE TABLE tbl_name;
-- 手动抽样采集指定表指定列的统计信息,设置抽样行数。
ANALYZE SAMPLE TABLE tbl_name (v1, v2, v3) PROPERTIES(
"statistic_sample_collect_rows" = "1000000"
);
手动采集直方图统计信息
关于直方图的说明,请参见CBO 统计信息。
语法
ANALYZE TABLE tbl_name UPDATE HISTOGRAM ON col_name [, col_name]
[WITH SYNC | ASYNC MODE]
[WITH N BUCKETS]
PROPERTIES (property [,property]);