Nastavení cíle statistiky je uloženo pro každý sloupec v katalogové tabulce pg_attribute . Můžete to nastavit takto:
ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;
A zkontrolujte to takto:
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.mytable'::regclass
AND attname = 'mycolumn';
Nebo se stačí podívat na skript pro vytvoření v prohlížeči objektů pgAdmin, kde je připojen, pokud se hodnota liší od výchozí hodnoty v default_statistics_target .
Cituji manuál na attstattarget :
attstattarget řídí úroveň podrobností statistik nashromážděných pro tento sloupec pomocí
ANALYZE. Nulová hodnota znamená, že by neměly být shromažďovány žádné statistiky. Záporná hodnota říká, že se má použít výchozí cíl statistiky systému. Přesný význam kladných hodnot je závislý na datovém typu. U skalárních datových typů je attstattarget jak cílový počet „nejběžnějších hodnot“, které se mají shromáždit, tak cílový počet přihrádek histogramů k vytvoření.
Tučné zdůrazněte můj.
Statistiky pro sloupce prostého indexu jsou totožné se statistikami sloupců a nemají žádné samostatné položky v tabulkách statistik. Postgres však shromažďuje samostatné statistiky pro indexové výrazy . Ty lze vyladit podobným způsobem:
ALTER INDEX myschema.myidx ALTER COLUMN 1 SET STATISTICS 128;
Při absenci skutečných názvů sloupců se k adresování sloupců indexu používají pořadová čísla, která odpovídají pg_attribute.attnum :
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.myidx'::regclass
AND attnum = 1;
Nastavení ve skutečnosti ovlivní statistiku sloupců až při příštím ANALYZE se spouští ručně nebo pomocí autovacuum .