首批通过分布式安全可靠测评,为关键业务系统打造
ANALYZE
更新时间:2023-07-18 17:25:59
描述
该语句用于收集表或表分区的统计信息。
语法
ANALYZE
TABLE [ schema. ]table_name
[ PARTITION (partition) | SUBPARTITION (subpartition) ]
{ compute_statistics_clause | estimate_statistics_clause } ;
compute_statistics_clause:
COMPUTE STATISTICS [ for_clause ]
estimate_statistics_clause:
ESTIMATE STATISTICS [ for_clause ]
[ SAMPLE integer { ROWS | PERCENT } ]
for_clause:
FOR
TABLE
| ALL [ INDEXED | HIDDEN ] COLUMNS [ SIZE integer ]
| COLUMNS [ SIZE integer ]
{ column | attribute } [ SIZE integer ]
[ { column | attribute }
[ SIZE integer ]
]
[ FOR
{ TABLE
| ALL [ INDEXED | HIDDEN ] COLUMNS
[ SIZE integer ]
| COLUMNS [ SIZE integer ]
{ column | attribute } [ SIZE integer ]
[ { column | attribute }
[ SIZE integer ]
]...
}
]...
参数解释
| 参数 | 描述 |
|---|---|
| schema | 指定表所属的 Schema。如果省略该参数,默认为当前 Schema。 |
| table_name | 指定要分析的表。 |
| PARTITION | SUBPARTITION | 指定要收集统计信息的分区或子分区。如果指定的分区为一级分区,会同时分析该分区下所有子分区的信息。 |
| compute_statistics_clause | 指定 COMPUTE STATISTICS 可以计算分析对象的精确统计信息,并将其存储在数据字典中。分析表时,会同时统计表和列的统计信息。 |
| for_clause | 指定要分析整个表,或者只分析特定的列。
|
| estimate_statistics_clause | 指定 ESTIMATE STATISTICS 可以估计分析对象的统计信息,并将其存储在数据字典中。 |
| SAMPLE | 指定用于估计统计信息使用的分析对象中的采样数据量。如果省略该参数,则对 1064 行进行采样。
|
示例
收集表
tbl1的统计信息。obclient> ANALYZE TABLE tbl1 COMPUTE STATISTICS; Query OK, 0 rows affected收集表
tbl1所有索引列的列统计信息。obclient> ANALYZE TABLE tbl1 COMPUTE STATISTICS FOR ALL INDEXED COLUMNS SIZE 100; Query OK, 0 rows affected