From: | Alan Hodgson <ahodgson(at)simkin(dot)ca> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Why so slow? |
Date: | 2006-04-28 15:02:59 |
Message-ID: | 200604280802.59696@hal.medialogik.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On April 28, 2006 04:41 am, "Bealach-na Bo" <bealach_na_bo(at)hotmail(dot)com>
wrote:
> INFO: index "job_log_id_pkey" now contains 10496152 row versions in
> 59665 pages
See the 10496152 above? That means you have 10496152 rows of data in your
table. If those, only 365000 are alive. That means you have basically
never vacuumed this table before, correct?
Every update or delete creates a new dead row. count(*) scans the whole
table, dead rows included. That's why it takes so long, the table acts as
though it has 10496152 rows when doing sequential scans.
Do a VACCUM FULL on it or CLUSTER it on on a index, both of which will empty
out all the free space and make it behave as it should. Note; VACUUM FULL
will take quite a while and requires an exclusive lock on the table.
CLUSTER also requires an exclusive lock but should be a lot faster for this
table.
Oh, and get autovacuum setup and working, posthaste.
--
No long, complicated contracts. No actuarial tables to pore over. Social
Security operates on a very simple principle: the politicians take your
money from you and squander it "
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-04-28 15:35:04 | Re: Arrays and index scan |
Previous Message | Jim C. Nasby | 2006-04-28 14:58:43 | Re: Why so slow? |