"Paul B. Anderson" <paul@pnlassociates.com> writes:
> After I restart postgresql, I execute vacuum several times in sql until
> it succeeds. Then, everything else works OK again.
> After I clear the problem,
> select count(*) from archive
> takes a second but, before the problem is cleared, it takes about 30
> seconds and then gives the canceled by user response.
This all sounds exactly like an overly enthusiastic statement_timeout.
What you are doing to "clear the problem" is merely to populate the disk
cache sufficiently that your query finishes before timing out.
regards, tom lane