[CDBI] How well does Class::DBI scale?
rick at praxis.com.au
Sun Dec 18 23:05:00 GMT 2005
Bill Moseley wrote:
> On Sun, Dec 18, 2005 at 02:29:16PM +1100, Rick Welykochy wrote:
>>3. I have played with columns( Essential => all cols ) but observe very
>> improvement (i.e. reduction) in the number of SQLs.
> Are you saying that after a search that fetching a column from a CDBI
> object triggers another select from the database for that column even
> if the column is in Essential?
Not really. First off, the SQL logging is vast, i.e. thousands of
SQLs in some instances. I have yet to delve deep down into the quagmire
to see what is happeneing exactly, but I fear the %Live_Objects mechanism
Let's say we have one hundred rows the refer to foreign key 86
in the units table. The units table has a (id,name) pair. I will
see one hundred SQL requests for (id=86,name) from the database!
I find this strange if the corresponding Unit object has already
been _flesh()'d out once.
Note that in the case of this Unit stuff, the only Essential
column is the primary key. Would this explain the behaviour?
I can either spend more of my client's time and money digging deeper
into why this is happening in CDBI, or move on and optimise. I have
chosen the latter, since I need to do that anyway.
> Take a look at CDBI::Sweet. There's a few things that might help.
> With Sweet you can specify joins in your query. And with Sweet you can
> also define custom SQL which is helpful if you are doing any aggregate
> If you have not already done this, you can create views and define new
> CDBI classes for those. That can help reduce the number of trips to
> the database.
Thanks. Will have a look.
Rick Welykochy || Praxis Services
Virtue is more to be feared than vice, because its excesses are not subject
to the regulation of conscience.
-- Adam Smith
More information about the ClassDBI