F畸io Sato wrote:
>
> > > I'm using the ODBC Driver version 07_01_0007 with ADO and the performance
> > > is very disappointing... I have a procedure that update 868 rows and it is
> > > taking more than 5 minutes to complete.
> > >
> > > After some search on the mailing lists I've found similar problems but
> > > didn't find any answer to them. Can someone help me?
> >
> > Are you committing after each operation, or is the ODBC driver forcing
> > this?
> >
> > By "procedure", do you mean as PG-backend proc (in plpgsql or something
> > like that), or do you mean client-side procedure that calls PG 868 times?
> >
> > --
> >
> > Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton
> > Independent Knowledge Management Consultant
>
> I think that the source code may be a better answer to your questions,
> so this is basically what I'm doing:
>
[snip]
>
> ' Then I open the connection and do the updates
>
> conn.Open "DSN=mydb;uid=username;pwd=mypassword"
>
> For I = 0 To size - 1
> sql = "update mytable set value1 = " & array1(I) & ", value2 = " &
> array2(I) & _
> ", value3 = " & array3(I) & ... & ", value20 = " & array20(I) &
> -
> " where code = " & codes(I)
> conn.Execute(sql)
> Next I
>
First aren't you turning on ODBC trace ?
Second, how does
explain update mytable set value1 = ..,
value20 = ..
where code = ..;
show using psql ?
regards,
Hiroshi Inoue