Dear Mike,
sorry for not coping with preferred reply behavior..
On Donnerstag, 26. Juni 2014 15:26:02 Mike Bayer wrote:
> On 6/26/14, 3:07 PM, Hans-Peter Jansen wrote:
> >
> > Obviously, some operation triggers the flush method with about the
> > same consequences..
>
> OK, turn off autoflush - either Session(autoflush=False), or within the
> critical block, do "with session.no_autoflush:"
Okay, that makes a difference, shaving of about 40% of total runtime,
after dealing with identical records in one session..
Still, attributes is highest in profiles. I guess, this is, what you
called overkill in your first response. A helper for dealing with this
situation sounds interesting, though.
Thu Jun 26 20:41:50 2014 srelay.pstats
55993702 function calls (54767154 primitive calls) in 533.479 seconds
Ordered by: internal time
List reduced from 1277 to 30 due to restriction <30>
ncalls tottime percall cumtime percall filename:lineno(function)
42160 292.536 0.007 292.910 0.007
attributes.py:1321(from_collection)
63209 39.185 0.001 39.294 0.001 attributes.py:1255(as_state)
39 39.037 1.001 39.037 1.001 {time.sleep}
45816 30.949 0.001 30.949 0.001 {method 'query' of
'_mysql.connection' objects}
392 30.039 0.077 30.039 0.077 {method 'recv' of
'_socket.socket' objects}
42240 9.870 0.000 302.804 0.007 attributes.py:871(get_history)
21083 4.284 0.000 6.500 0.000 attributes.py:868(__copy)
42158 2.230 0.000 2.252 0.000 collections.py:711(__len__)
21043 1.466 0.000 1.851 0.000 topological.py:51(find_cycles)
4159430 1.369 0.000 1.369 0.000 {isinstance}
24683 1.330 0.000 391.984 0.016 session.py:1790(flush)
642077/24712 1.292 0.000 12.840 0.001
visitors.py:74(_compiler_dispatch)
197570 1.285 0.000 4.215 0.000 compiler.py:389(visit_label)
45735 1.235 0.000 3.615 0.000 default.py:391(_init_compiled)
246847 1.145 0.000 1.637 0.000 compiler.py:421(visit_column)
24558 1.060 0.000 458.633 0.019 srelay.py:74(store_enos_rec)
24636 1.048 0.000 12.709 0.001 compiler.py:1136(visit_select)
197552 1.030 0.000 6.000 0.000
compiler.py:1019(_label_select_column)
24636 1.015 0.000 1.793 0.000 result.py:171(__init__)
63126 0.939 0.000 3.202 0.000
persistence.py:275(_collect_update_commands)
49200/49172 0.937 0.000 3.539 0.000 db_scheme.py:91(__repr__)
147240 0.904 0.000 1.246 0.000 topological.py:15(sort_as_subsets)
126514 0.814 0.000 348.487 0.003 unitofwork.py:411(execute)
63191 0.771 0.000 1.984 0.000
dependency.py:67(per_property_flush_actions)
622925 0.751 0.000 0.973 0.000 attributes.py:308(__get__)
699682 0.745 0.000 0.745 0.000 state.py:185(dict)
189809 0.726 0.000 343.341 0.002
unitofwork.py:177(get_attribute_history)
73928 0.653 0.000 0.781 0.000 expression.py:3538(__init__)
42170 0.648 0.000 0.648 0.000 {method 'clear' of 'dict' objects}
126252 0.639 0.000 1.795 0.000 persistence.py:802(_sort_states)
Cheers,
Pete
--
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.