From: | nolan(at)celery(dot)tssi(dot)com |
---|---|
To: | pgsql-general(at)postgresql(dot)org (pgsql general list) |
Subject: | Optimizer failure on integer column? |
Date: | 2003-06-03 07:09:55 |
Message-ID: | 20030605014052.23168.qmail@celery.tssi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Is there a documented problem with optimizing integer key fields
in 7.3.3?
I have two tables. One was extracted from the other and has
the following four columns.
mtranmemid varchar(8),
mtranseq integer,
mtransts char,
mtranmemtp varchar(2)
mtranseq is a unique index on both tables and contains no nulls.
When I try to do an update, it takes several hours. Here's what
explain says about the query:
explain update missing_ids
set mtransts = a.mtransts,
mtranmemtp = a.mtranmemtp
from memtran as a
where a.mtranmemid = missing_ids.mtranmemid
and a.mtranseq = missing_ids.mtranseq
QUERY PLAN
--------------------------------------------------------------------------------
Hash Join (cost=9231.64..58634.93 rows=1 width=48)
Hash Cond: ("outer".mtranseq = "inner".mtranseq)
Join Filter: ("outer".mtranmemid = "inner".mtranmemid)
-> Seq Scan on memtran a (cost=0.00..22282.57 rows=714157 width=26)
-> Hash (cost=6289.91..6289.91 rows=351891 width=22)
-> Seq Scan on missing_ids (cost=0.00..6289.91 rows=351891 width=22)
Incidentally, why can't you define an alias on the primary table in
an update query? That would make the above a bit easier to write.
--
Mike Nolan
From | Date | Subject | |
---|---|---|---|
Next Message | Elein Mustain | 2003-06-04 04:14:39 | Re: server process segfaulting |
Previous Message | Coby Beck | 2003-06-03 02:14:46 | implicit type conversions |