From: Colin Taylor <colin.taylor@gmail.com>
To: pgsql-performance@postgresql.org
Subject: slow simple update?
Date: Wed, 22 Jun 2005 18:12:34 +1200
Message-ID: <84d3067d0506212312775b3fa3@mail.gmail.com> (raw)
Hi there,
I'm doing an update of ~30,000 rows and she takes about 15mins on
pretty good hardware, even just after a vacuum analyze.
I was hoping some kind soul could offer some performance advice. Do I
just have too many indexes? Or am I missing some trick with the nulls?
MY QUERY
========
update bob.product_price set thru_date = '2005-06-22 22:08:49.957'
where thru_date is null;
MY TABLE
=========
Table "bob.product_price"
Column | Type | Modifiers
-----------------------------+--------------------------+-----------
product_id | character varying(20) | not null
product_price_type_id | character varying(20) | not null
currency_uom_id | character varying(20) | not null
product_store_id | character varying(20) | not null
from_date | timestamp with time zone | not null
thru_date | timestamp with time zone |
price | numeric(18,2) |
created_date | timestamp with time zone |
created_by_user_login | character varying(255) |
last_modified_date | timestamp with time zone |
last_modified_by_user_login | character varying(255) |
last_updated_stamp | timestamp with time zone |
last_updated_tx_stamp | timestamp with time zone |
created_stamp | timestamp with time zone |
created_tx_stamp | timestamp with time zone |
Indexes:
---------
pk_product_price primary key btree
(product_id, product_price_type_id, currency_uom_id,
product_store_id, from_date),
prdct_prc_txcrts btree (created_tx_stamp),
prdct_prc_txstmp btree (last_updated_tx_stamp),
prod_price_cbul btree (created_by_user_login),
prod_price_cuom btree (currency_uom_id),
prod_price_lmbul btree (last_modified_by_user_login),
prod_price_prod btree (product_id),
prod_price_pst btree (product_store_id),
prod_price_type btree (product_price_type_id)
Foreign Key constraints:
-------------------------
prod_price_prod FOREIGN KEY (product_id) REFERENCES bob.product(product_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
prod_price_type FOREIGN KEY (product_price_type_id) REFERENCES
bob.product_price_type(product_price_type_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
prod_price_cuom FOREIGN KEY (currency_uom_id) REFERENCES bob.uom(uom_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
prod_price_pst FOREIGN KEY (product_store_id) REFERENCES
bob.product_store(product_store_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
prod_price_cbul FOREIGN KEY (created_by_user_login) REFERENCES
bob.user_login(user_login_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
prod_price_lmbul FOREIGN KEY (last_modified_by_user_login) REFERENCES
bob.user_login(user_login_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
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-performance@postgresql.org
Cc: colin.taylor@gmail.com
Subject: Re: slow simple update?
In-Reply-To: <84d3067d0506212312775b3fa3@mail.gmail.com>
* 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