Re: [CDBI] Make CDBI go fast
Dan Rowles <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.class-dbi |
|---|---|
| Organization | Outcome Technologies |
| Message-ID | <[email protected]> |
Michael G Schwern wrote: > * Inflate columns into objects on demand. > > CDBI inflates columns as soon as they are fleshed out. If the inflated column is never accessed then its a plain waste. If a class has relationships it can result in a cascade of inflations and object loads. If I remember correctly, when inflating columns which are part of a "has_a" relationship, Class::DBI just calls the _simple_bless() method, which won't go to the database at all. So this is probably less of a problem than you think. I don't think you can get cascading database loads this way..... > * Speed up id() and primary_column() (probably by caching primary_column) > > In profiling I've found CDBI spends too much time calculating an object's id. A lot of this is determining the primary columns and then calculating an id from it. This all can probably be cached in the object. Or, create a method in the child class called "id" when the user calls "__PACKAGE__->columns(Primary => qw/ whatever /)". Good luck with your project :) -- Dan Rowles CTO Outcome Technologies _________________________________ t: +44 (0)207 656 2460 f: +44 (0)709 230 6588 m: +44 (0)798 076 8143 e: [email protected] w: http://www.outcometechnologies.com BUPA House 15-19 Bloomsbury Way London WC1A 2BA _________________________________ ***This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you receive this message in error, please return it to the sender.***