A configuração para o destino de estatísticas é armazenada por coluna na tabela de catálogo
pg_attribute
. Você pode definir assim:ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;
E verifique assim:
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.mytable'::regclass
AND attname = 'mycolumn';
Ou você apenas olha para o script de criação no navegador de objetos do pgAdmin, onde é anexado se o valor for diferente do padrão em
default_statistics_target
. Cito o manual em
attstattarget
:
attstattarget controla o nível de detalhe das estatísticas acumuladas para esta coluna porANALYZE
. Um valor zero indica que nenhuma estatística deve ser coletada. Um valor negativo indica o uso da meta de estatísticas padrão do sistema. O significado exato dos valores positivos depende do tipo de dados. Para tipos de dados escalares, attstattarget é o número de destino de "valores mais comuns" a serem coletados e o número de destino de compartimentos de histograma a serem criados.
Negrito ênfase minha.
As estatísticas para colunas de índice simples são idênticas às estatísticas de coluna e não possuem entradas separadas nas tabelas de estatísticas. Mas o Postgres reúne estatísticas separadas para expressões de índice . Eles podem ser ajustados de maneira semelhante:
ALTER INDEX myschema.myidx ALTER COLUMN 1 SET STATISTICS 128;
Na ausência de nomes de coluna reais, números ordinais são usados para endereçar colunas de índice, que correspondem a
pg_attribute.attnum
:SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.myidx'::regclass
AND attnum = 1;
A configuração só afetará as estatísticas da coluna na próxima vez que
ANALYZE
está sendo executado manualmente ou por autovacuum
.