Thank you for the explanation, with ROLLBACK / pool_reset_on_return I
understand it now.
With this snippet:
import time
from sqlalchemy import create_engine
e = create_engine("postgresql://postgres:[email protected]/postgres")
def go():
now = time.time()
with e.connect() as conn:
for i in range(100):
conn.execute("select 1").fetchall()
total = time.time() - now
print("completed in %f sec" % (total, ))
def go2():
now = time.time()
for i in range(100):
with e.connect() as conn:
conn.execute("select 1").fetchall()
total = time.time() - now
print("completed in %f sec" % (total, ))
go()
go2()
e = create_engine("postgresql://postgres:[email protected]/postgres",
pool_reset_on_return=None)
go2()
I get values 17, 44, 17 in remote connection, or 0.10, 0.17, 0.10
within the same datacenter.
Zsolt
On Fri, 18 Jan 2019 at 23:01, Zsolt Ero <[email protected]> wrote:
>
> But why is it doing any kind of network activity on a .connect(), if
> the previous connection was closed in the pool?
>
> OK, I created a sandbox server, it'll probably be quicker for you as
> the server is in US, but this also did 18 sec for me.
>
> import time
> from sqlalchemy import create_engine
>
> e = create_engine("postgresql://postgres:[email protected]/postgres")
>
> def go():
> now = time.time()
> with e.connect() as conn:
> for i in range(100):
> conn.execute("select 1").fetchall()
> total = time.time() - now
> print("completed in %f sec" % (total, ))
>
> go()
>
> On Fri, 18 Jan 2019 at 22:54, Mike Bayer <[email protected]> wrote:
> >
> > On Fri, Jan 18, 2019 at 4:49 PM Zsolt Ero <[email protected]> wrote:
> > >
> > > I know I'm far away from a remote server, as the server is a Google
> > > Cloud SQL instance, and I'm in a residential cable connection. But
> > > ping times are only 145 ms, nothing extreme I'd say. If you'd like I
> > > can quickly setup a sandbox instance on GCP for trying this out.
> > >
> > > Still, I don't even understand the theory, shouldn't connection pools
> > > be the same speed as keeping one connection?
> >
> > the problem you are illustrating has nothing to do with the connection pool.
> >
> > >
> > > --
> > > SQLAlchemy -
> > > The Python SQL Toolkit and Object Relational Mapper
> > >
> > > http://www.sqlalchemy.org/
> > >
> > > To post example code, please provide an MCVE: Minimal, Complete, and
> > > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> > > description.
> > > ---
> > > You received this message because you are subscribed to the Google Groups
> > > "sqlalchemy" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an
> > > email to [email protected].
> > > To post to this group, send email to [email protected].
> > > Visit this group at https://groups.google.com/group/sqlalchemy.
> > > For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > SQLAlchemy -
> > The Python SQL Toolkit and Object Relational Mapper
> >
> > http://www.sqlalchemy.org/
> >
> > To post example code, please provide an MCVE: Minimal, Complete, and
> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> > description.
> > ---
> > You received this message because you are subscribed to a topic in the
> > Google Groups "sqlalchemy" group.
> > To unsubscribe from this topic, visit
> > https://groups.google.com/d/topic/sqlalchemy/GEhwdHSBVbs/unsubscribe.
> > To unsubscribe from this group and all its topics, send an email to
> > [email protected].
> > To post to this group, send email to [email protected].
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.