With the log tips of Oswaldo, I saw that
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
on every instruction as you said Danielle. JDBC dont have those and it use parameters for the statements, psycopg do not (its embedded in the SQL). I dont know if this could have some impact.
I used the recommended way to avoid SQL Injection by the way.
execute("insert into table(col) values(%s)", (10,))
--
Anyway, I wil try to get more careful look on this later(maybe not today, but soon), and tell you guys what happened.
Thanks very much for all the support.
2011/5/11 Daniele Varrazzo
<daniele.varrazzo@gmail.com> On Wed, May 11, 2011 at 3:38 PM, Israel Ben Guilherme Fonseca
> I'm explicitly committing the insert instruction at every iteration, so I
> don't think that's possible to cache all the inserts in one statement like
> you did.
In this case, it may be due to the "set isolation level" issued
together with the "begin" by psycopg. Because you send a very short
statement between BEGIN/COMMIT pair the code for the set could be a
relevant part of the communication. The overhead would be less
relevant with bigger commands per transaction of course.
This is a point I just wanted to talk about on the ML: will try to
write this evening/in the next few days.
-- Daniele