I'm having this very disturbing problem. I got a table with about
100,000 rows in it. Our software deletes the majority of these rows and
then bulk loads another 100,000 rows into the same table. All this is
happening within a single transaction. I then perform a simple "select
count(*) from ..." statement that never returns. In the mean time, the
backend Postgres process is taking close to 100% of the CPU. The hang-up
does not always happen on the same statement but eventually it happens 2
out of 3 times. If I dump and then restore the schema where this table
resides the problem is gone until the next time we run through the whole
process of deleting, loading and querying the table.

 

There is no other activity in the database. All requested locks are
granted. 

 

Has anyone seen similar behavior? 

 

Some details:

 

Postgres v 8.1.2

Linux Fedora 3

 

shared_buffers = 65536

temp_buffers = 32768

work_mem = 131072 

maintenance_work_mem = 131072

max_stack_depth = 8192

max_fsm_pages = 40000

wal_buffers = 16

checkpoint_segments = 16

 

 

top reports

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

19478 postgres  25   0  740m 721m 536m R 99.7  4.4 609:41.16 postmaster

 

ps -ef | grep postgres reports 

 

postgres 19478  8061 99 00:11 ?        10:13:03 postgres: user dbase
[local] SELECT

 

strace -p 19478 

no system calls reported

 

 

Thanks for the help!

Jozsef

Reply via email to