Re: Update taking forever

Поиск
Список
Период
Сортировка
От Keith
Тема Re: Update taking forever
Дата
Msg-id CAHw75vsg5G4XwpMdBfGyTqdu_JnJcSroAmO7Wr6MDntkPeu7Uw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Update taking forever  (Bianca Stephani <bianca.stephani@gmail.com>)
Ответы Re: Update taking forever  (Bianca Stephani <bianca.stephani@gmail.com>)
Список pgsql-novice


On Mon, Jun 15, 2015 at 8:30 AM, Bianca Stephani <bianca.stephani@gmail.com> wrote:


On Mon, Jun 15, 2015 at 9:17 AM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Monday, June 15, 2015, Bianca Stephani <bianca.stephani@gmail.com> wrote:
Hi everyone.
I want to update the value of a column of 25 thousand rows and a sql update is taking forever (literally, more then one day). There's any other way so i can do that?

This would normally takes seconds (at most) if everything is working properly, so yes.  I would suspect your where clause is not using an index to find those rows and there are a lot more than 25k rows on the table in question.  Show us schemas and explain output if you want a more definitive answer.

Ops, i must have looked on the wrong place. There are 420k rows. 
My update have no "where" clause because i want to update all rows. I'm adding two columns to the table and i'm setting one of them with a select count and the other with the result of a recursive sql (defined before the update, not at each row).



Or you have locking issue...

David J. 



--
Bianca Stephani.

"Killing time before time kill us"
"Panic called you out and took you in, giving you an easy game and letting you win"
"Who's gonna love you when you reach the end?"
"A diferença entre a vida e a arte é que a arte é mais suportável"
"Smile like you mean it"
"I told you I was brave, but I've lied"
"If you don't do anything, nothing can happen"

Even with that many rows, it shouldn't take that long. Likely there is something that has a lock on either the table you're trying to update or the rows. Look in the pg_stat_activity view from another session and look at the "waiting" column. If it says "t" or "true", then something else has a lock and it must finish what it's doing or be released before your update can finish. Look in the other sessions to see if you can identify what else may be causing it. Otherwise, you're going to have to dig into the pg_locks system catalog and learn how to debug things from there.

http://www.postgresql.org/docs/current/static/view-pg-locks.html
https://wiki.postgresql.org/wiki/Lock_Monitoring
https://momjian.us/main/presentations/internals.html - Unlocking the Postgres Lock Manager



В списке pgsql-novice по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Update taking forever
Следующее
От: Bianca Stephani
Дата:
Сообщение: Re: Update taking forever