ANALYZE | ANALYSE
功能描述
用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC下。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。
如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、column和partition_name参数把分析限定在特定的表、列或分区表中。
ANALYZE|ANALYSE VERIFY用于检测数据库中普通表(行存表、列存表)的数据文件是否损坏。
注意事项
说明: 注意事项可见ANALYZE。
语法格式
- 收集表的统计信息
1. {ANALYZE | ANALYSE} [ VERBOSE ] [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE { [schema.]table_name } [, ... ]
参数说明
- NO_WRITE_TO_BINLOG | LOCAL
仅作语法,无实际用途
说明: 涉及的参数可见ANALYZE。
示例
— 创建表。
1. openGauss=# CREATE TABLE customer_info
2. (
3. WR_RETURNED_DATE_SK INTEGER ,
4. WR_RETURNED_TIME_SK INTEGER ,
5. WR_ITEM_SK INTEGER NOT NULL,
6. WR_REFUNDED_CUSTOMER_SK INTEGER
7. )
8. ;
— 创建分区表。
1. openGauss=# CREATE TABLE customer_par
2. (
3. WR_RETURNED_DATE_SK INTEGER ,
4. WR_RETURNED_TIME_SK INTEGER ,
5. WR_ITEM_SK INTEGER NOT NULL,
6. WR_REFUNDED_CUSTOMER_SK INTEGER
7. )
8. PARTITION BY RANGE(WR_RETURNED_DATE_SK)
9. (
10. PARTITION P1 VALUES LESS THAN(2452275),
11. PARTITION P2 VALUES LESS THAN(2452640),
12. PARTITION P3 VALUES LESS THAN(2453000),
13. PARTITION P4 VALUES LESS THAN(MAXVALUE)
14. )
15. ENABLE ROW MOVEMENT;
— 使用ANALYZE语句更新统计信息。
1. openGauss=# ANALYZE TABLE customer_info, customer_par;
2. Table | Op | Msg_type | Msg_text
3. ----------------------+---------+----------+----------
4. public.customer_info | analyze | status | OK
5. public.customer_par | analyze | status | OK
6. (2 row)
— 删除表。
1. openGauss=# DROP TABLE customer_info;
2. openGauss=# DROP TABLE customer_par;
