Thanks!  That's close enough and easy to backport.  In principle, a  
solution that did O(1) queries, rather than O(N) would be nice, but  
the reduction in memory use at least gets me back to something  
tolerable.

-kevin


On Feb 23, 2009, at 12:37 PM, Frederick Cheung wrote:

>
>
>
> On Feb 23, 8:28 pm, Kevin Scaldeferri <[email protected]>
> wrote:
>> I'm trying to figure out it there's some alternative to find(:all)
>> that can avoid instantiating every object at once, when I know that
>> I'm just going to iterate over the collection and throw it away.   
>> E.g.
>>
>
> http://github.com/rails/rails/commit/d13623ca46c82120c398f4634e206422fc3ad7ea
> ?
>
> Fred
>> def batch_process
>>  User.find(:all).each do |user|
>>    batch_process_one_user(user)
>>  end
>> end
>>
>> Unfortunately, this may instantiate millions of User objects and use
>> up GB of memory, which is not acceptable.  I've been digging through
>> docs and code trying to figure out how I can do this within Rails,
>> rather than having to go down to the raw DB connection and build from
>> there, or pushing everything into a stored procedure.
>>
>> Thanks,
>>
>> -kevin
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to