pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Ken Hill <ken@scottshill.com>
To: Michael Fuhr <mike@fuhr.org>
Cc: pgsql-sql@postgresql.org
Subject: Re: Slow update SQL
Date: Tue, 14 Feb 2006 08:35:16 -0800
Message-ID: <1139934917.3083.2.camel@localhost.localdomain> (raw)
In-Reply-To: <20060214051721.GA76364@winnie.fuhr.org>
References: <1139881725.3183.2.camel@localhost.localdomain>
	<20060214021434.GA75196@winnie.fuhr.org>
	<1139885286.3183.10.camel@localhost.localdomain>
	<20060214051721.GA76364@winnie.fuhr.org>

On Mon, 2006-02-13 at 22:17 -0700, Michael Fuhr wrote:

> [Please copy the mailing list on replies.]
> 
> On Mon, Feb 13, 2006 at 06:48:06PM -0800, Ken Hill wrote:
> > On Mon, 2006-02-13 at 19:14 -0700, Michael Fuhr wrote:
> > > How many rows does the condition match?
> >
> > csalgorithm=# SELECT count(*) FROM ncccr10 WHERE
> > date_part('year',dxdate) > '2000';
> >  count
> > --------
> >  199209
> > (1 row)
> 
> You're updating about a third of the table; an expression index on
> date_part probably wouldn't help because the planner is likely to
> stick with a sequential scan for such a large update.  Even if it
> did help it's likely to be a small fraction of the total time.
> 
> The table definition you sent me showed nine indexes.  You might
> see a substantial performance improvement by dropping all the
> indexes, doing the update, then creating the indexes again (don't
> forget to vacuum and analyze the table after the update).  However,
> dropping the indexes has obvious implications for other queries so
> you might need to do the update at a time when that doesn't matter.
> 
> > > Have you queried pg_locks
> > > to see if the update is blocked on an ungranted lock?
> > 
> > I don't know what that is. How do I query pg_locks?
> 
> SELECT * FROM pg_locks;
> 
> http://www.postgresql.org/docs/7.4/static/monitoring-locks.html
> 
> > > What version of PostgreSQL are you running?
> > 
> > 7.4.8. Thank you for your help.
> 
> Newer versions generally perform better; consider upgrading to 8.0
> or 8.1 if possible.
> 

Removing the indexes, running the update SQL, and then adding back the
indexes worked much faster. Thank you for you help.

view thread (8+ messages)  latest in thread

Message-ID: <1139934917.3083.2.camel@localhost.localdomain>
Permalink:  ../1139934917.3083.2.camel@localhost.localdomain/
Also on:    postgresql.org/message-id/1139934917.3083.2.camel@localhost.localdomain

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: ken@scottshill.com, mike@fuhr.org
  Subject: Re: Slow update SQL
  In-Reply-To: <1139934917.3083.2.camel@localhost.localdomain>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox