Обсуждение: stale temporary tables
Hello all, i don't know if there is a quicker way, but i ended up in having 40,000 or so stale temp tables from a Java application which is using postgres as backend. what i did is the following: 1) run postmaster with -o -O 2) type \dS and put the result to a file (list of all the temp tables, all still there!) 3) create a sql file to drop the tables like this cut -f1 -d\| staletables.txt | grep pg_temp | sed '/pg_temp.[0-9]*.[0-9] */s//DROP TABLE "&";/' > droptables.sql 4) from pgsql run \i droptables.sql isn't there any switch or command in VACUUM that does it? Regards Tim
thimoty@thimoty.it wrote: > Hello all, > i don't know if there is a quicker way, but i ended up in having > 40,000 or so > stale temp tables from a Java application which is using postgres as > backend. > > what i did is the following: > 1) run postmaster with -o -O > 2) type \dS and put the result to a file (list of all the temp tables, > all still there!) > 3) create a sql file to drop the tables like this > cut -f1 -d\| staletables.txt | grep pg_temp | sed '/pg_temp.[0-9]*.[0-9] > */s//DROP TABLE "&";/' > droptables.sql > 4) from pgsql run \i droptables.sql > > isn't there any switch or command in VACUUM that does it? Lost temp tables should never happen, but they sometimes do because of backend crashes. I have worked on a patch to auto-delete them, but it was rejected and we can't come up with a good way to do it. I think this is fixed in 7.3. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> thimoty@thimoty.it wrote:
>> i don't know if there is a quicker way, but i ended up in having
>> 40,000 or so
>> stale temp tables from a Java application which is using postgres as
>> backend.
> Lost temp tables should never happen, but they sometimes do because of
> backend crashes.
I was wondering how he got to that state, too. If it was because of
crashes, he must have had an awful lot of crashes.
> I have worked on a patch to auto-delete them, but it
> was rejected and we can't come up with a good way to do it. I think
> this is fixed in 7.3.
7.3 is better anyway: a backend crash can still leave temp tables
behind, but they'll be cleaned up the next time some backend tries
to use the same pg_temp_NNN schema.
regards, tom lane