如何在postgres中设置表的统计级别?

raj*_*tro 1 postgresql statistics

我知道如何设置特定列的统计级别,即

alter table table_name alter column column_name set statistics 100;
Run Code Online (Sandbox Code Playgroud)

但是,如果我希望为特定表或特定模式设置统计级别,是否有一个 liner 命令?

Lau*_*lbe 5

表或模式没有现成的东西,因为它们很少有用。

但是您可以将其设置为整个数据库

ALTER DATABASE mydb SET default_statistics_target = 1000;
Run Code Online (Sandbox Code Playgroud)

您还可以使用psql's\gexec为表的所有列设置统计目标:

SELECT format(
          'ALTER TABLE %s ALTER %I SET STATISTICS 1000',
          attrelid::regclass,
          attname
       )
FROM pg_attribute
WHERE attrelid = 'pgbench_tellers'::regclass
  AND attnum > 0 \gexec
Run Code Online (Sandbox Code Playgroud)