一尘不染

检查PostgreSQL中的统计目标

sql

我已经搜索过,但是找不到任何简单,直接的答案。如何检查ANALYZE当前使用的统计目标?


阅读 109

收藏
2021-03-10

共1个答案

一尘不染

统计目标的设置存储在目录表中的每一列中pg_attribute。您可以这样设置:

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;

并像这样检查它:

SELECT attstattarget
FROM   pg_attribute
WHERE  attrelid = 'myschama.mytable'::regclass
AND    attname = 'mycolumn';

或者,您只需在pgAdmin的对象浏览器中查看创建脚本,如果该值与中的默认值不同,则会在该脚本中附加创建脚本default_statistics_target

我引用以下手册attstattarget

attstattarget控制由累积的该列统计信息的详细程度ANALYZE。零值表示不应收集统计信息。 负值表示使用系统默认统计信息目标。
正值的确切含义取决于数据类型。对于标量数据类型,attstattarget既是要收集的“最常见值”的目标数,也是要创建的直方图bin的目标数。

大胆强调我的。

2021-03-10