此条目与 PostgreSQL 的一项功能相关,该功能是 PostgreSQL 18 的一部分,预计将于 2025 年底发布。
pg_set_attribute_stats()
是一个用于更新属性级统计信息的系统函数。
pg_set_attribute_stats()
在 PostgreSQL 18 中添加。
用法
pg_set_attribute_stats (relation
regclass
,
attname
name
,
inherited
boolean
[,null_frac
real
]
[,avg_width
integer
]
[,n_distinct
real
]
[,most_common_vals
text
,most_common_freqs
real
[] ]
[,histogram_bounds
text
]
[,correlation
real
]
[,most_common_elems
text
,most_common_elem_freqs
real
[] ]
[,elem_count_histogram
real
[] ]
[,range_length_histogram
text
]
[,range_empty_frac
real
]
[,range_bounds_histogram
text
]
) → void
pg_set_attribute_stats()
可以由数据库所有者或具有 MAINTAIN
权限的角色执行。
pg_set_attribute_stats()
主要用于测试不同统计集对规划器的影响,以了解或预测计划更改。请注意,VACUUM
或 ANALYZE
操作可能会覆盖使用此函数所做的任何更改。
更改历史
- PostgreSQL 18
- 添加 (提交 ce207d2a)
示例
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)
参考文献
- PostgreSQL 18 文档: 数据库对象统计信息操作函数