1、功能描述
用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC下。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。
- 如果没有指定参数,analyze会分析当前数据库中的每个表和分区表
- 同时也可以通过指定table_name、column和partition_name参数把分析限定在特定的表、列或分区表中
能够执行analyze特定表的用户,包括表的所有者、表所在数据库的所有者或通过GRANT被授予该表上analyze权限的用户以及有SYSADMIN属性的用户。
- 在百分比采样收集统计信息时,用户需要被授予analyze和select权限。
- analyze|analyze verify 用于检测数据库中普通表(行存表、列存表)的数据文件是否损坏,目前此命令暂不支持HDFS表
2、语法格式
-
收集表的统计信息
{ ANALYZE | ANALYSE } [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]; -
收集分区表的统计信息
{ ANALYZE | ANALYSE } [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ] PARTITION ( patrition_name ) ; -
收集外表的统计信息。
{ ANALYZE | ANALYSE } [ VERBOSE ] { foreign_table_name | FOREIGN TABLES }; -
收集多列统计信息
{ANALYZE | ANALYSE} [ VERBOSE ] table_name (( column_1_name, column_2_name [, ...] )); -
检测当前库的数据文件
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}; -
检测表和索引的数据文件
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE} table_name|index_name [CASCADE]; -
检测表分区的数据文件
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE} table_name PARTITION {(patrition_name)}[CASCADE];
3、示例
--- 创建表。
CREATE TABLE customer_info
(
WR_RETURNED_DATE_SK INTEGER ,
WR_RETURNED_TIME_SK INTEGER ,
WR_ITEM_SK INTEGER NOT NULL,
WR_REFUNDED_CUSTOMER_SK INTEGER
)
DISTRIBUTE BY HASH (WR_ITEM_SK);
--- 创建分区表
CREATE TABLE customer_par
(
WR_RETURNED_DATE_SK INTEGER ,
WR_RETURNED_TIME_SK INTEGER ,
WR_ITEM_SK INTEGER NOT NULL,
WR_REFUNDED_CUSTOMER_SK INTEGER
)
DISTRIBUTE BY HASH (WR_ITEM_SK)
PARTITION BY RANGE(WR_RETURNED_DATE_SK)
(
PARTITION P1 VALUES LESS THAN(2452275),
PARTITION P2 VALUES LESS THAN(2452640),
PARTITION P3 VALUES LESS THAN(2453000),
PARTITION P4 VALUES LESS THAN(MAXVALUE)
)
ENABLE ROW MOVEMENT;
--- 使用ANALYZE语句更新统计信息。
ANALYZE customer_info;
--- 使用ANALYZE VERBOSE语句更新统计信息,并输出表的相关信息。
ANALYZE VERBOSE customer_info;
INFO: analyzing "cstore.pg_delta_3394584009"(cn_5002 pid=53078)
INFO: analyzing "public.customer_info"(cn_5002 pid=53078)
INFO: analyzing "public.customer_info" inheritance tree(cn_5002 pid=53078)
ANALYZE
--- 删除表。
DROP TABLE customer;
DROP TABLE customer_par;

本文介绍了一个用于收集数据库表统计信息的命令ANALYZE及其语法格式。ANALYZE可以帮助执行计划生成器确定最优执行计划,支持收集普通表、分区表、外表及多列统计信息,并能检测数据文件是否损坏。
1803

被折叠的 条评论
为什么被折叠?



