Just some questions, which might be helpful.

What size is this index?
What is underlying table size?
Is ANALYZE running regularly (autovacuum or manual)?
What are stats for exported_when column (pg_stats)?
Did you look at pg_locks during this lengthy update?
Do you have many concurrent statements which involve on this table?
Did you cross out CPU and I/O contention?



On Mon, Jan 28, 2013 at 2:15 PM, Scott Ribe <scott_r...@elevated-dev.com>wrote:

> I'm seeing occasional simple-looking updates take way longer than I think
> they should, and if my theory about it is correct, it's not actually a
> problem. Consider this index, intended to provide extremely quick access to
> a small number of items from a much larger table:
>
>   create index not_exported on exports(id) where exported_when is null
>
> My guess is that if instead of a very small number of items, there are
> 1000s or 10s of 1000s of items, and a process is updating them one at a
> time, then occasionally there will be an expensive update of that index
> that involves touching & writing a lot of pages?
>
> If that's what's happening, great. (The processing is normally triggered
> by notify, and happens much faster than the rate at which these come in, so
> the number of items in that index should be 0 most of the time,
> occasionally 1 for a second, and possibly but rarely 2 or 3 for a second.
> The current situation of lots of entries in it has to do with 1-time
> processing of legacy data.)
>
> If that can't be what's happening, then I would want to investigate
> further why an update of a smallish row with 3 small indexes sometimes
> takes 600ms.
>
> --
> Scott Ribe
> scott_r...@elevated-dev.com
> http://www.elevated-dev.com/
> (303) 722-0567 voice
>
>
>
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

Reply via email to