Thread: How to delete column level Stats/Histogram
- Is there a way to delete a specific column level stats/histogram. The following approach does not work.
alter table abc alter column bg_org_partner set statistics 0;
analyze abc;
select *
FROM pg_stats where tablename in ('abc' ) and attname = 'bg_org_partner';
the most_common_vals remain and most_common_freqs remain the same.
- Any other ways or workaround such as wiping out a specific table level stat, then restore the stats but minus 1 column. And the future vacuum analyze/analyze will not be updating that specific column stat.
Thank you
On Fri, 31 May 2024 at 09:28, Wong, Kam Fook (TR Technology) <kamfook.wong@thomsonreuters.com> wrote: > Is there a way to delete a specific column level stats/histogram. The following approach does not work. > > alter table abc alter column bg_org_partner set statistics 0; > analyze abc; You'd have to: DELETE FROM pg_statistic WHERE starelid = 'abc'::regclass and staattnum = (SELECT attnum FROM pg_attribute WHERE attrelid = 'abc'::regclass AND attname = 'bg_org_partner'); to get rid of it. David
(please keep communication on the list) On Fri, 31 May 2024 at 13:43, Wong, Kam Fook (TR Technology) <kamfook.wong@thomsonreuters.com> wrote: > > Silly question why did I run into this problem below? Will the autovacuum analyze abc reset it back which I don't wantit to. > > DELETE FROM pg_statistic WHERE starelid = 'abc'::regclass and staattnum = (SELECT attnum FROM pg_attribute WHERE attrelid= 'abc'::regclass AND attname = 'bg_org_partner'); > > SQL Error [42P01]: ERROR: relation "abc" does not exist > Position: 52 The schema for the abc table will need to be in your search_path. You'll need to be connected to the correct database too. David