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‑value 与 max‑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)
-
如果列是 DATE 或 TIMESTAMP/TIMESTAMPTZ,则分区表达式可以指定支持的日期/时间函数,该函数会返回该列或其任何部分,例如月份或年份。例如,以下分区表达式指定对列
order_date
的年份部分进行分区:PARTITION BY YEAR(order_date)
-
该表达式对列执行加法或减法。例如:
PARTITION BY YEAR(order_date) -1
-
-
表分区表达式不能将指定列强制转换为另一种数据类型。
-
Vertica 不从以下投影中收集任何统计数据:
-
实时聚合投影和 Top-K 投影
-
定义这些投影可以在表达式中包含 SQL 函数
-
示例
请参阅收集分区统计信息。