The doSelectRS or doSelectStmt methods do not necessarily mean "custom" SQL
in my opinion. You still can use the $c->add(ModelClassPeer::COLUMN,
$value); syntax to keep your SQL abstracted, just doSelect() does not allow
for custom columns, thats all.

On Fri, Apr 3, 2009 at 11:41 AM, jb <[email protected]> wrote:

>
> Hi,
>
> We have some tips to reduce memory usage, one is exactly to use custom
> queries, but anything has a big impact on used memory:
> the arch of your server. 32 bits servers use less memory in action.
> We had a big problem too when processing a large number of object
> (about 300 000 object from a schema to insert in another, about 1 200
> 000 insertions), we resolved this by processing items 1000 per 1000,
> and also by freeing memory by hand.
> Disabling object pooling had no effect on our app, so the really
> useful thing to do when you don't need a proprl object anymore is:
> $object->clearAllReferences();
> unset($object);
>
> But you may have to look in your templates too, in order to avoid
> partials, and look for optimizations.
>
> On 3 avr, 10:58, Gareth McCumskey <[email protected]> wrote:
> > One way to optimize your query is to not use the doSelect method on a
> Propel
> > model class but rather the doSelectRS method. doSelect in effect does a
> > SELECT * on your database whereas with a doSelectRS you can specify
> exactly
> > only those columns you want returned and it is returned in a non-hydrated
> > fashion.
> >
> > Of course thats Propel1.2. If you are using Propel 1.3 then instead of
> > doSelectRS you would need to use a doSelectStmt. The syntax of each is
> > different but they are essentially the same thing, returning a resultset
> to
> > you instead of an array of hydrated objects, with only the exact columns
> you
> > want and therefore is far more memory efficient.
> >
> > eg:
> >
> > $c = new Criteria();
> > $c->clearSelectColumns();
> > $c->addSelectColumns(MyModelPeer::COLUMN_NAME);
> > $results = MyModelPeer::doSelectRS($c);
> >
> > Gareth
> >
> > On Fri, Apr 3, 2009 at 10:45 AM, Lee Bolding <[email protected]> wrote:
> >
> > > That's 50MB, which seems more than enough to me - typically, my max
> > > ram is set to 32MB.
> >
> > > The error would suggest you are retrieving far too many objects in a
> > > DB query and/or that they are far too big.
> >
> > > Investigate optimising your query, lazy loading and database
> > > normalisation
> >
> > > On 3 Apr 2009, at 03:03, xhe wrote:
> >
> > > > I am using shared hosting, but my backend can not be used due to
> > > > memory inefficiency:
> >
> > > > Fatal error: Out of memory (allocated 51380224) (tried to allocate
> > > > 7680 bytes) in /home1/transla1/public_html/symfony-clb/lib/model/om/
> > > > BaseUserColorEyePeer.php on line 80
> >
> > > > are there anyway to reduce the memory usage?
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to