Обсуждение: followup to SELECT/INSERT problem
ok, so i decided to run a test with just the one element of my pipeline.
the process does:
BEGIN WORK;
loop
read stdin
if changes
UPDATE table1 SET ... WHERE KEY = ...;
print to stdout
END WORK;
now i fire up:
$ cat file.dat | adjust-rec > /dev/null
it works fine until the first update, then the backend goes into UPDATE and
starts eating CPU.
it appears that each call to UPDATE seems to be taking a long, long time to
complete.
--
[ Jim Mercer jim@reptiles.org +1 416 410-5633 ]
[ Reptilian Research -- Longer Life through Colder Blood ]
[ Don't be fooled by cheap Finnish imitations; BSD is the One True Code. ]
Jim Mercer <jim@reptiles.org> writes:
> it appears that each call to UPDATE seems to be taking a long, long time to
> complete.
Poor choice of plan, maybe? What does EXPLAIN say about how a typical
example of the UPDATE will be executed?
regards, tom lane
On Fri, Jun 23, 2000 at 12:00:31PM -0400, Tom Lane wrote: > Jim Mercer <jim@reptiles.org> writes: > > it appears that each call to UPDATE seems to be taking a long, long time to > > complete. > > Poor choice of plan, maybe? What does EXPLAIN say about how a typical > example of the UPDATE will be executed? silly me, i should have know to do more investigation before going to the list. as it turns out, the index on the key was not being used. a "vacuum verbose analyze" caused things to run much, much faster. (hence the UPDATE ... WHERE key = ... was taking extra long) -- [ Jim Mercer jim@reptiles.org +1 416 410-5633 ] [ Reptilian Research -- Longer Life through Colder Blood ] [ Don't be fooled by cheap Finnish imitations; BSD is the One True Code. ]