Re: Performance query about large tables, lots of concurrent access

From: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
To: Karl Wright <kwright(at)metacarta(dot)com>
Cc: Francisco Reyes <lists(at)stringsutils(dot)com>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Performance query about large tables, lots of concurrent access
Date: 2007-06-20 17:40:37
Message-ID: 46796695.3080403@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Karl Wright wrote:
> So, I guess this means that there's no way I can keep the database
> adequately vacuumed with my anticipated load and hardware. One thing or
> the other will have to change.

Have you checked your maintenance_work_mem setting? If it's not large
enough, vacuum will need to scan through all indexes multiple times
instead of just once. With 16 GB of RAM you should set it to something
like 2GB I think, or even more.

> Is the VACUUM in 8.2 significantly faster than the one in 8.1?

Yes, in particular if you have a lot of indexes. Scanning the indexes
was done in index page order, which in worst case means random I/O, and
we used to do an extra scan of all index pages to collect empty ones.
Now it's all done as a single sequential pass.

> Or, is
> the database less sensitive performance-wise to delayed VACUUM commands?

No.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Alvaro Herrera 2007-06-20 17:53:00 Re: Performance query about large tables, lots of concurrent access
Previous Message Karl Wright 2007-06-20 17:28:08 Re: Performance query about large tables, lots of concurrent access