ANALYZE | ANALYSE

功能描述

用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC下。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。

如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、column和partition_name参数把分析限定在特定的表、列或分区表中。

ANALYZE|ANALYSE VERIFY用于检测数据库中普通表(行存表、列存表)的数据文件是否损坏。

注意事项

ANALYZE ANALYSE - 图1 说明: 注意事项可见ANALYZE

语法格式

  • 收集表的统计信息

    1. {ANALYZE | ANALYSE} [ VERBOSE ] [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE { [schema.]table_name } [, ... ]

参数说明

  • NO_WRITE_TO_BINLOG | LOCAL

    仅作语法,无实际用途

ANALYZE ANALYSE - 图2 说明: 涉及的参数可见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;

相关链接

ANALYZE