此条目与一个提议的PostgreSQL功能相关,该功能在公开发布之前已被撤回。
pg_set_attribute_stats() 是一个用于更新属性级统计信息的系统函数。
pg_set_attribute_stats() 在 PostgreSQL 18 中添加,但随后被撤回。
用法
pg_set_attribute_stats (relationregclass,
attnamename,
inheritedboolean
[,null_fracreal]
[,avg_widthinteger]
[,n_distinctreal]
[,most_common_valstext,most_common_freqsreal[] ]
[,histogram_boundstext]
[,correlationreal]
[,most_common_elemstext,most_common_elem_freqsreal[] ]
[,elem_count_histogramreal[] ]
[,range_length_histogramtext]
[,range_empty_fracreal]
[,range_bounds_histogramtext]
) → void
pg_set_attribute_stats() 可以由数据库所有者或具有 MAINTAIN 权限的角色执行。
pg_set_attribute_stats() 主要用于测试不同统计信息集对优化器的影响,以了解或预测计划的更改。请注意,VACUUM 或 ANALYZE 操作可能会覆盖使用此函数所做的任何更改。
变更历史
示例
pg_set_attribute_stats() 的基本用法示例
postgres=# SELECT pg_set_attribute_stats(
relation := 'test',
attname := 'id',
inherited := false,
n_distinct := 42
);
pg_set_attribute_stats
------------------------
(1 row)
postgres=# SELECT tablename, attname, n_distinct
FROM pg_stats
WHERE tablename = 'test'
AND attname = 'id';
tablename | attname | n_distinct
-----------+---------+------------
test | id | 42
(1 row)
