Re: Consecutive Inserts Freeze Execution of Psycopg3 - Mailing list psycopg

From Adrian Klaver
Subject Re: Consecutive Inserts Freeze Execution of Psycopg3
Date
Msg-id 04fea413-8776-dd4e-7f0e-4b235b454f19@aklaver.com
Whole thread Raw
In response to Re: Consecutive Inserts Freeze Execution of Psycopg3  ("Michael P. McDonnell" <bzaks1424@gmail.com>)
List psycopg
On 4/23/23 17:26, Michael P. McDonnell wrote:
> Thanks Adrian -
> I appreciate it; and I've been pouring through documentation to try and 
> get to this point.
> I can't help but feel I'm doing it "wrong" but no website I can find 
> recently seems to have a "right" way of doing things that's reasonably 
> kept up.
> It would be nice if "wrong" had a way of shooting me in the foot with 
> verbose errors or warnings.

Start here:

https://www.psycopg.org/psycopg3/docs/basic/index.html

and work through the sections in order.

> 
> -Mike
> 
> On Sun, Apr 23, 2023 at 7:15 PM Adrian Klaver <adrian.klaver@aklaver.com 
> <mailto:adrian.klaver@aklaver.com>> wrote:
> 
>     On 4/23/23 14:55, Michael P. McDonnell wrote:
>      > That helped a ton, I don't understand why I've had to rewrite the
>     crap
>      > out of all of this to get it to work (dropping SqlAlchemy, upgrading
>      > from psycopg2 to psycopg, etc...) but it's working now and I can
>     work
>      > around it. Thank you.
> 
>     Well:
> 
>     1) SQLAlchemy is an ORM that tries to make all databases look the same.
> 
>     2) psycopg2 != psycopg. For details see:
> 
>     https://www.psycopg.org/psycopg3/docs/basic/from_pg2.html
>     <https://www.psycopg.org/psycopg3/docs/basic/from_pg2.html>
> 
>     3) It would have been more of a surprise if you did not have to change
>     anything.
> 
>     4) And this
> 
>     with self.connection.cursor() as conn:
> 
>     was just plain wrong. You where trying to make a cursor be a connection
>     and that is not going to work.
> 
> 
>      >
>      >
>      > On Sun, Apr 23, 2023 at 4:25 PM Adrian Klaver
>     <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
>      > <mailto:adrian.klaver@aklaver.com
>     <mailto:adrian.klaver@aklaver.com>>> wrote:
>      >
>      >     On 4/23/23 13:45, Michael P. McDonnell wrote:
>      >      > Python 3.10.6
>      >      > psycopg library 3.1.8
>      >      >
>      >      > Running consecutive inserts sourced in files.
>      >      > All inserts are of the same format:
>      >      >
>      >      > INSERT INTO _____ (field1, field2, field3)
>      >      > SELECT field1, field2, field3 FROM ____, Join ___, join
>     ___ etc...
>      >      >
>      >      > The code I've written is this:
>      >      >
>      >      > for qi in range(qlen):
>      >      >              query = queries[qi]
>      >      >              qparams = params[qi]
>      >      >              with self.connection.cursor() as conn:
>      >      >                  conn.execute(query, qparams)
>      >
>      >     In above you are running the context manager(with) over the
>     cursor not
>      >     the connection. This will not automatically commit the
>     transaction. You
>      >     will need to either explicitly do connection.commit() or use
>     the with
>      >     over the connection per:
>      >
>      > https://www.psycopg.org/psycopg3/docs/basic/transactions.html
>     <https://www.psycopg.org/psycopg3/docs/basic/transactions.html>
>      >   
>       <https://www.psycopg.org/psycopg3/docs/basic/transactions.html
>     <https://www.psycopg.org/psycopg3/docs/basic/transactions.html>>
>      >
>      >      >
>      >      > When I run the queries in dbeaver - the first query takes
>     120s (it's
>      >      > 1.9M rows), the second query takes 2s (7000 rows).
>      >      > When I run the queries in python - it freezes on the
>     second query.
>      >      >
>      >      > Any guidance on how to attack this would be awesome as I have
>      >     re-written
>      >      > my code a dozen times and am just slinging mud to see what
>     sticks.
>      >
>      >     --
>      >     Adrian Klaver
>      > adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
>     <mailto:adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>
>      >
> 
>     -- 
>     Adrian Klaver
>     adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




psycopg by date:

Previous
From: "Michael P. McDonnell"
Date:
Subject: Re: Consecutive Inserts Freeze Execution of Psycopg3
Next
From: "Michael P. McDonnell"
Date:
Subject: Re: Consecutive Inserts Freeze Execution of Psycopg3