Hi,
I've been trying to profile why loading a single table from remote
ORACLE DB takes more then 5 seconds.
Here is some numbers:

create engine 0.0740728378296
engine.connect 2.05604815483
SELECT table_name FROM all_tables WHERE owner='ZZZ'
get tables 0.18466091156
Loading 'triggerpathdescription' table
5.85890698433
Load tables manually ['triggerpathdescription']
load table 5.85950708389

It looks like SQLAlchemy takes 25 fetchone calls in order to autoload
table, but I tweak a code for ORACLE engine to use fetchmany and just
slighly reduced the total time. To me it's WAY to long and as far as I
can tell it internals of building foreign-key relationships. So I
wonder if there is a way to speed up such auto load.

I'm attaching a simple test code below.
Thanks,
Valentin.

#!/usr/bin/env python

import sqlalchemy,types,sys,os,time

def loadTables(tableNames):
    for tName in tableNames:
        t = tName[0].lower().split(".")[-1]
        print "Loading '%s' table"%t
        t1=time.time()
 
tables[t]=sqlalchemy.Table(t,dbMeta,autoload=True,schema=schema,oracle_renyms=True,useexisting=True)
        print time.time()-t1
        break

    print "Load tables manually",tables.keys()

schema = 'ZZZ'
t1 = time.time()
engine = sqlalchemy.create_engine('oracle://
XXX:[EMAIL PROTECTED]',strategy='threadlocal',threaded=True)
print "create engine",time.time()-t1
t1 = time.time()

con = engine.connect()

print "engine.connect",time.time()-t1
t1 = time.time()
tables={}
dbMeta = sqlalchemy.MetaData()
dbMeta.bind = engine

idx = 0
query="SELECT table_name FROM all_tables WHERE owner='%s'"%schema
print query
tableNames=con.execute(query)
print "get tables",time.time()-t1
t1 = time.time()

loadTables(tableNames)

print "load table",time.time()-t1
t1 = time.time()


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to