sure, you commit too often, and if you're expiring too, then you're re-selecting all the time.
On Feb 9, 2011, at 3:54 AM, Romy Maxwell wrote: > I never did understand the pros or cons of running autocommit=True, > aside from this flushing issue. Are there performance implications ? > > On Mon, Feb 7, 2011 at 1:22 PM, Michael Bayer <mike...@zzzcomputing.com> > wrote: >> I actually just did a little bit of reverse course on this in 0.7. I've >> moved all the accounting into the try/except block so that the flush >> completes fully before the autocommit expires everything. This is a change >> to a pattern that's been the same way since 0.4 so hoping nothing bad >> happens when we put 0.7 out into betas. >> >> >> On Feb 7, 2011, at 2:52 PM, Romy Maxwell wrote: >> >>> Are there any downsides to setting expire_on_commit=False when using >>> autocommit=True ? In other words, should I expect to see stale data or >>> other side effects ? >>> >>> On Mon, Feb 7, 2011 at 8:30 AM, Michael Bayer <mike...@zzzcomputing.com> >>> wrote: >>>> >>>> On Feb 7, 2011, at 7:42 AM, Romy Maxwell wrote: >>>> >>>>> Hey Michael, >>>>> >>>>> I didn't wanna revive a really old thread >>>>> [http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg16598.html], >>>>> so I figured maybe you won't mind the email. >>>>> >>>>> I don't understand why, in the thread, using autocommit=True makes the >>>>> object unreachable, or what that actually means. I'm assuming it was >>>>> referring to the latter part of the code: >>>>> >>>>>> o = s.query(T).get(2) >>>>>> o.id = 10 >>>>>> o.description = "Changed" >>>>>> s.flush() >>>>> >>>>> With autocommit=True, I've always thought flushes created their own >>>>> transactions, like so: >>>>> >>>>> s.begin() >>>>> s.flush() >>>>> s.commit() >>>>> >>>>> But if that was true, then the commit happens after the flush. How >>>>> would the commit expire anything and/or make anything unreachable for >>>>> the flush ? >>>> >>>> >>>> The commit is expiring because that's what it does when expire_on_commit >>>> is True. So the flush goes into its post-commit accounting, it in fact >>>> has to reload all the objects, one at a time, so is hugely inefficient and >>>> I'm going to add a big warning for that in 0.7, ticket 2041. >>>> >>>> >>>> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalchemy@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.