跳到主要内容

ANALYZE

描述

该语句用于收集统计信息。可以针对表(可以指定具体列)或整个数据库进行列统计信息的收集。

语法

ANALYZE {TABLE <table_name> [ (<column_name> [, ...]) ] | DATABASE <database_name>}
[ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} <sample_rate> ] ];

必选参数

1. <table_name>

指定的目标表。该参数与<database_name>参数必须且只能指定其中之一。

2. <database_name>

指定的目标数据库。该参数与<table_name>参数必须且只能指定其中之一。

可选参数

1. <column_name>

指定表的目标列。必须是  table_name  中存在的列,多个列名称用逗号分隔。

2. WITH SYNC

指定同步执行该 ANALYZE 语句。不指定时默认后台异步执行。

3. WITH SAMPLE {PERCENT | ROWS} <sample_rate>

指定使用抽样方式收集。当不指定时,默认为全量收集。<sample_rate> 为抽样参数,在 PERCENT 采样时指定抽样百分比,ROWS 采样时指定抽样行数。

返回值

列名说明
Job_Id收集作业的唯一 ID
Catalog_NameCatalog 名
DB_Name数据库名
Columns收集的列列表

权限控制

执行此 SQL 命令的用户必须至少具有以下权限:

权限(Privilege)对象(Object)说明(Notes)
SELECT_PRIV表(Table)当执行 ANALYZE 时,需要拥有被查询的表的 SELECT_PRIV 权限

举例

  1. 对 lineitem 表按照 10% 的比例采样收集统计数据:
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
  1. 对 lineitem 表按采样 10 万行收集统计数据
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;