Zope+Oracle efficiency (was Re: [Zope-DB] ANN: eGenix mxODBC Zope Database Adapter, Version 1.0.0)

Robert Kellock sales@creditscore.co.nz
Tue, 04 Mar 2003 13:24:42 +1300


On 3/03/03 at 23:24 Dario Lopez-K=E4sten wrote:
>
>well, I am no expert either but AFAIK Oracle uses SQL*NET for ODBC
>communications (ODBC sits on top of SQL*NET). Not sure if this is slower=
 or
>not. I also have the impression that ODBC is slower per se, but perhaps
>coupled with better connection pooling it makes mxODBC faster?
>
So it's going to be really slow now, because it's running through the CLR,=
 an interpreted environment.
>
>I wonder though if the *sheer number* of active/connected ZOracleDA=
 objects
>in the ZODB has some relevance to those numbers (ie. more open DA objects
>means increase threads and/or ZODB connections?). I have not read any
>specific numbers and I have yet to begin to understand how the amount of
>ZODB connections has an impact on the usage of ZOracleDA
>connections/objects.
>
The actual work of Zope takes place within the context of a thread, so the=
 only way I can see that having lots of DA objects adversely affects=
 performance is because the DA is opening a connection with the database=
 for every object rather than pooling them and also maybe the connections=
 are being dropped either by Zope or the RDBMS. To avoid this problem,=
 whenever possible, you should have a single top level DA object and bind=
 your ZSQL methods to it using acquisition from your lower level folders,=
 because at any one time you cannot have more active database queries than=
 the number of Zope threads, usually four in a standard installation.

isectZope (http://www.zope.org/Members/creditscore/isectZope) is a DA that=
 uses external database connection pooling to avoid large numbers of=
 database connections clogging up your RDBMS. Each Zope connection is=
 nothing more than a lightweight socket handle.The database connections=
 themselves are maintained externally by the Isectd middleware and you=
 limit them to the number of threads you have defined in Zope, so there is=
 always a free connection available to service a Zope thread.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Robert Kellock
Sales Manager
Credit Systems Control Ltd
Ph: 64 3 3266115
www.creditscore.co.nz

'making decisions easy'
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D