Re: Simple select hangs while CPU close to 100%
От | Jozsef Szalay |
---|---|
Тема | Re: Simple select hangs while CPU close to 100% |
Дата | |
Msg-id | E387E2E9622FDD408359F98BF183879EE028E6@dc1.storediq.com обсуждение исходный текст |
Ответ на | Simple select hangs while CPU close to 100% ("Jozsef Szalay" <jszalay@storediq.com>) |
Список | pgsql-performance |
The actual application does not have to perform this statement since, as you suggested; it keeps track of what got loaded. However, the table has to go thru a de-duplication process because bulk load is utilized to load the potentially large number (millions) of rows. All indexes were dropped for the bulk load. This de-duplication procedure starts with a SELECT statement that identifies duplicate rows. This is the original SELECT that never returned. Later on I used the SELECT COUNT(*) to see if somehow my original SELECT had something to do with the hang and I found that this simple query hung as well. The only way I could avoid getting into this stage was to perform a VACUUM FULL on the table before the bulk load. I would prefer not using a full vacuum every time due to the exclusive access to the table and time it requires. The plain VACUUM did not work. Regards, Jozsef -----Original Message----- From: pgsql-performance-owner@postgresql.org [mailto:pgsql-performance-owner@postgresql.org] On Behalf Of Adam Tauno Williams Sent: Sunday, July 22, 2007 1:33 PM To: pgsql-performance@postgresql.org Subject: Re: [PERFORM] Simple select hangs while CPU close to 100% > 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 COUNT(*) is always slow; but either way if the process is deleting and then adding records, can't you just keep track of how may records you loaded [aka count++] rather than turning around and asking the database before any statistics have had a chance to be updated. > 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. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend
В списке pgsql-performance по дате отправления: