Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?

Поиск
Список
Период
Сортировка
От Nathanael Terrien
Тема Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?
Дата
Msg-id 70c49d62fc764ef5a723a92c0e6e07a0@EXCH2013.mustinformatique.fr
обсуждение исходный текст
Ответ на Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Ответы Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Список pgsql-odbc
> Maybe. Or just changed behavior between 8.4 and 9.0.

The tests we performed with other connection methods don't slow down  (Omnis Studio + PGDAM, C# + npgsql, or just a
functioncalled multiple times in the same query window from pgAdmin). 

> Could you write a self-contained test case to demonstrate this?

Yes.
Do you mind if it's a DotNet EXE  ?

-----Message d'origine-----
De : Heikki Linnakangas [mailto:hlinnakangas@vmware.com]
Envoyé : vendredi 5 décembre 2014 11:48
À : Nathanael Terrien; pgsql-odbc@postgresql.org
Objet : Re: [ODBC] Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with
PostgreSQL9.x ? 

On 12/05/2014 11:14 AM, Nathanael Terrien wrote:
> Hi List.
>
> Our application does something like this, through psqlodbc :
> ----------------------------------------------------------------------
> --------
> Open transaction (« BEGIN »)
> FOR x TO y STEP 1
>     Do Stuff
>     « SELECT col1 FROM table1 WHERE condition1 FOR UPDATE ; »
>    Do Stuff
>    « UPDATE table1 SET col1=z WHERE condition1 ; »
>    Do Stuff
> NEXT x
> End transaction (« COMMIT »)
> ----------------------------------------------------------------------
> --------
>
> Against PostgreSQL 8.4 : no problem.
> Against PostgreSQL 9.x : starting at about a few hundred loops (locks), the process slows down, and continues to slow
downexponentially, until the COMMIT happens. 
>
> We tried with different languages (C#, Omnis Studio, plain plpgsql ...), different versions of psqlodbc (8.4.2 to
9.3.x),different versions of PostgreSQL (8.4, 9.3, 9.4 RC1) , without psqlODBC ... and it all comes down to this : 
> The slow-down only happens with psqlodbc and PostgreSQL 9.x
>
> So we guess it's abug ?

Maybe. Or just changed behavior between 8.4 and 9.0.

Could you write a self-contained test case to demonstrate this?
Something with the CREATE TABLE and other statements required to create the database, and a small test program. It's
prettyhard to debug otherwise. 

- Heikki



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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Exponential processing time for multiple SELECT FOR UPDATE / UPDATE in a single transaction with PostgreSQL 9.x ?