The columns only contain address strings and not much more.

Okay I did some profiling for the customerorder plus two joins on
itemsbought and products:
         1008030 function calls (968253 primitive calls) in 2.220 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    2.211    2.211 sqltest.py:151(test)
        1    0.008    0.008    2.190    2.190
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py:2294(all)
        1    0.000    0.000    1.319    1.319
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py:2407(__iter__)
        1    0.000    0.000    1.312    1.312
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/query.py:2421(_execute_and_instances)
        4    0.000    0.000    1.303    0.326
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py:661(execute)
        1    0.000    0.000    1.300    1.300
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/sql/elements.py:320(_execute_on_connection)
        1    0.000    0.000    1.300    1.300
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py:790(_execute_clauseelement)
        4    0.000    0.000    1.298    0.324
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py:877(_execute_context)
        9    0.000    0.000    1.293    0.144
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/cursors.py:164(execute)
        7    0.000    0.000    1.293    0.185
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/engine/default.py:435(do_execute)
        9    0.000    0.000    1.293    0.144
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/cursors.py:353(_query)
     1709    0.010    0.000    0.864    0.001
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/loading.py:27(instances)
22084/5537    0.248    0.000    0.778    0.000
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/loading.py:330(_instance)
22052/5537    0.122    0.000    0.694    0.000
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/loading.py:284(populate_state)
        9    0.000    0.000    0.685    0.076
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/cursors.py:358(_post_get_result)
        9    0.000    0.000    0.684    0.076
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/cursors.py:324(_fetch_row)
        9    0.206    0.023    0.684    0.076 {built-in method fetch_row}
        9    0.000    0.000    0.608    0.068
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/cursors.py:315(_do_query)
     3829    0.009    0.000    0.426    0.000
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/strategies.py:1451(load_collection_from_joined_existing_row)
   111604    0.073    0.000    0.409    0.000
/home/dumbass/sources/venv/lib/python2.7/site-packages/MySQLdb/connections.py:212(string_decoder)
10979/5505    0.016    0.000    0.344    0.000
/home/dumbass/sources/venv/lib/python2.7/site-packages/sqlalchemy/orm/strategies.py:1475(load_scalar_from_joined_new_row)
   111604    0.124    0.000    0.336    0.000 {method 'decode' of 'str'
objects}


as I can see creating objects and the query itself(?) takes a lot of
cpupower? But why? It is just a simple query? Is it really the object
creating? I just want to iterate over that data to display it in ordermenu
for the admin.
Or shall I use plain execution of sql for that, is sqlalchemy more for
specific queries to get specific data and not the mass data?



On Fri, Sep 12, 2014 at 6:40 PM, Jonathan Vanasco <jonat...@findmeon.com>
wrote:

> I think you need to profile the application like Mike said. Just to be
> thorough, I'd suggest you time the Query execution and the ORM population.
>
> Do you have an example of the faster raw SQL that you're trying to
> generate ?
>
> When you do a query on the commandline it is often faster because the
> database is only displaying the initial data on the screen.  When you're
> using something like SqlAlchemy, the app needs to get all the data and then
> create objects.  This is usually lightweight, but if you have some columns
> with a lot of data, there will be a hit.  When you profile, you'll have a
> better idea if the query, the loader, of the connection is to blame.
>
> --
> 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 sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to