ANALYZE_STATISTICS_PARTITION

收集并聚合指定表中一系列分区的数据示例和存储信息。Vertica 将收集的统计信息写入数据库编录。

您可以使用 CTRL+C 或元函数 INTERRUPT_STATEMENT 取消统计信息收集。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

ANALYZE_STATISTICS_PARTITION ('[[database.]schema.]table', 'min‑range‑value','max‑range‑value' [, 'column‑list' [, percent ]] )

返回

0:成功

如果发生错误,请参阅 vertica.log 以了解详细信息。

参数

[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

在其上收集数据的表。
min‑range‑value
max‑range‑value
要分析的分区键的最小值和最大值,其中 min‑range‑value 必须≤ max‑range‑值。要分析一个分区,min‑range‑valuemax‑range‑value 必须相等。
column‑list
table 中以逗号分隔的列的列表,通常为谓词列。Vertica 将数据收集范围缩小到指定的列。
percent
介于 0 和 100 之间的浮点值,指定从磁盘读取数据的百分比(不是要分析的数据量)。如果省略此实参,Vertica 会将百分比设置为 10。

如果分析超过 10% 的磁盘空间,处理时间会成比例地增加,但是得到的采样精确度较高。

特权

非超级用户:

  • 架构:USAGE

  • 表:INSERT、DELETE 或 UPDATE 之一

要求和限制

ANALYZE_STATISTICS_PARTITION 具有以下要求和限制:

  • 该表必须进行分区,并且不能包含未分区的数据。

  • 表分区表达式必须指定单个列。支持以下表达式:

    • 仅指定列的表达式,即对所有列值进行分区。例如:

      PARTITION BY ship_date GROUP BY CALENDAR_HIERARCHY_DAY(ship_date, 2, 2)
      
    • 如果列是 DATETIMESTAMP/TIMESTAMPTZ,则分区表达式可以指定支持的日期/时间函数,该函数会返回该列或其任何部分,例如月份或年份。例如,以下分区表达式指定对列 order_date 的年份部分进行分区:

      PARTITION BY YEAR(order_date)
      
    • 该表达式对列执行加法或减法。例如:

      PARTITION BY YEAR(order_date) -1
      
  • 表分区表达式不能将指定列强制转换为另一种数据类型。

  • Vertica 不从以下投影中收集任何统计数据:

    • 实时聚合投影和 Top-K 投影

    • 定义这些投影可以在表达式中包含 SQL 函数

示例

请参阅收集分区统计信息