to drop a 30GB database. is it slow?

Started by Gábor Farkasover 20 years ago5 messagesgeneral
Jump to latest
#1Gábor Farkas
gabor@nekomancer.net

hi,

we have a database, which was not vacuumed for a looooong time.

right now it's size is 30GB. it only contains a simple table with 90rows.

it seems that it's so big because it was not vacuumed for a long time.

is this a reasonable assumption?

now we'd like to somehow 'compact' him.

it seems that a normal vacuum process does not recover the disk space.

there seems to be a "full" vacuum process, which can also recover the
'lost' space, but it blocks the whole postgresql db, so other processes
cannot read/write to it.

is this correct?

so, we're thinking about dropping the whole db, and recreate it (because
it only stores session data, so if they're lost, it's not THAT bad),
because this will be much faster.

am i correct to assume that if we drop it, postgresql recovers that 30GB
of disk space?

and, how long this step (the db-drop) usually take? is it's "speed"
comparable to a normal file-delete operation?

i'm only afraid that maybe if we issue the drop-db command, it will take
for example 30minutes...

thanks,
gabor

p.s: and all those questions like 'why didnt you vacuum it before' ...
it wasn't us. we took over this project just recently.

#2Alban Hertroys
alban@magproductions.nl
In reply to: Gábor Farkas (#1)
Re: to drop a 30GB database. is it slow?

Gábor Farkas wrote:

i'm only afraid that maybe if we issue the drop-db command, it will take
for example 30minutes...

Wouldn't it be more effective to create a new table by selecting your
session table and switch their names? You can drop the troublesome table
afterwards, without influencing the availability of your database any
further.

This should minimize your downtime, I think - unless people have even
speedier solutions, of course.

--
Alban Hertroys
alban@magproductions.nl

magproductions b.v.

T: ++31(0)534346874
F: ++31(0)534346876
M:
I: www.magproductions.nl
A: Postbus 416
7500 AK Enschede

//Showing your Vision to the World//

#3Gábor Farkas
gabor@nekomancer.net
In reply to: Alban Hertroys (#2)
Re: to drop a 30GB database. is it slow?

Alban Hertroys wrote:

Gábor Farkas wrote:

i'm only afraid that maybe if we issue the drop-db command, it will
take for example 30minutes...

Wouldn't it be more effective to create a new table by selecting your
session table and switch their names? You can drop the troublesome table
afterwards, without influencing the availability of your database any
further.

This should minimize your downtime, I think - unless people have even
speedier solutions, of course.

thanks, but what my fear is:

as i understand, this little db eats up 30GB of space (the real content
should be like 10MB), because it was not vacuumed for a long time.

but a normal vacuum does not recover disk space, it still keeps it.

we need to do a different vacuum that recovers the disk space, but for
that time the db will not respond.

so, what if simply dropping the table does not recover the disk-space?

thanks,
gabo

#4Doug McNaught
doug@mcnaught.org
In reply to: Gábor Farkas (#3)
Re: to drop a 30GB database. is it slow?

Gábor Farkas <gabor@nekomancer.net> writes:

so, what if simply dropping the table does not recover the disk-space?

It will. Each table is stored in its own set of disk files, and when
the table is dropped those files are simply deleted.

-Doug

#5James Cradock
jcradock@me3.com
In reply to: Doug McNaught (#4)
Re: to drop a 30GB database. is it slow?

On Sep 30, 2005, at 8:21 AM, Douglas McNaught wrote:

so, what if simply dropping the table does not recover the disk-space?

It will. Each table is stored in its own set of disk files, and when
the table is dropped those files are simply deleted.

This is normally true. Vacuuming the database the table (or index) was
dropped from may free up disk space too.

Jim

-----
James Cradock, jcradock@me3.com

me3 Technology Consultants, LLC
24 Preble Street, 2nd Floor
Portland, ME 04101

207-772-3217 (office)
207-838-8678 (mobile)

www.me3.com