TableScan 算子指定的采样率进行随机采样,并支持基于 Block 级别的采样,可根据设置的比例进行统计信息收集,能够极大地降低在收集统计信息过程中因全表扫描而产生的开销。SHOW TABLE STATS 语句查询表的统计信息:SHOW TABLE STATS [ShowLikeOrWhere];
列名 | 说明 |
Db_name | 数据库名称。 |
Table_name | 表名称。 |
Partition_name | 分区名称。 |
Update_time | 统计信息收集或更新时间。 |
Row_count | 表的总行数。 |
Sample_size | 收集基础统计信息时采样的行数。 |
Locked | 该表的统计信息是否被锁定。 |
test 库中表 t1 的统计信息:SHOW TABLE STATS WHERE Db_name='test' AND Table_name='t1';
SHOW TABLE STATS 外,只读分析实例还支持以下统计信息查询命令:SHOW COLUMN STATS:查看列级统计信息。SHOW INDEX STATS:查看索引统计信息。SHOW HISTOGRAM STATS:查看直方图统计信息。SHOW STATS HEALTHY:查看统计信息的健康度。SHOW ANALYZE STATUS:查看正在执行的统计信息收集任务状态。SHOW TABLE MODIFIED:查看表的修改情况(包括 Insert、Update、Delete 行数)。ANALYZE TABLE <表名> [ALL COLUMNS | COLUMNS IdentList] [WITH <num> BUCKETS] [WITH <rate> SAMPLERATE];
参数 | 说明 |
ALL COLUMNS | 指定所有列均按照默认行为收集统计信息。例如收集所有列的直方图。 |
COLUMNS IdentList | 指定收集指定列的统计信息。例如 COLUMNS c1,c2,c3。 |
WITH <num> BUCKETS | 指定等高直方图或 TOPN 收集的桶个数,取值范围为 [1, 1024]。未指定时使用默认值 256。 |
WITH <rate> SAMPLERATE | 指定采样率,单位为百分比,取值范围为 [0.000001, 100]。未指定时由系统根据数据量自动决定。 |
ALL COLUMNS 和 COLUMNS 子句时,使用默认收集策略,即收集列的基础统计信息,不包含直方图信息。INDEX、PARTITION、UPDATE HISTOGRAM ON 等扩展子句。test 库中 t1 表的统计信息:ANALYZE TABLE t1;
test 库中 t1 表所有列的直方图统计信息(256 个桶):ANALYZE TABLE t1 ALL COLUMNS WITH 256 BUCKETS;
test 库中 t1 表 c1、c2 列的直方图统计信息(256 个桶):ANALYZE TABLE t1 COLUMNS c1,c2 WITH 256 BUCKETS;
ANALYZE DATABASE DBNameList [ALL COLUMNS | COLUMNS IdentList] [WITH <num> BUCKETS] [WITH <rate> SAMPLERATE];
test 库下所有表执行统计信息收集:ANALYZE DATABASE test;
DROP STATS 语句删除指定表的统计信息:DROP STATS TableNameList;
test 库中 t1 表的统计信息:DROP STATS test.t1;
LOCK STATS 锁定指定表的统计信息,锁定后该表的统计信息不会被自动收集任务覆盖:LOCK STATS TableNameList;
UNLOCK STATS 解锁指定表的统计信息:UNLOCK STATS TableNameList;
test 库中 t1 表的统计信息:LOCK STATS test.t1;
文档反馈