Forum: Ruby on Rails Efficiently convert this SQL statement to ActiveRecord loop

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Brian C. (Guest)
on 2006-03-29 01:57
(Received via mailing list)
Hey Folks,



My app compares the last known set of files located on a series of
servers against a current snapshot for auditing purposes.   Its working
really well, and I'll open source it when its complete!



Here's my current issue (and forgive me, I started life as a DBA and I
constantly want to revert to connection.execute.)



The tables to store my objects are organized in this way:

COMPUTER <- belongs_to / has_many => CONFIGRATIONS <= has_many /
belongs_to -> ITEMS



I have another table called SNAPSHOT that has:

table.column :computername,     :string

table.column :dirname,               :string

table.column :filename,               :string

table.column :file_modified,         :datetime



Issues:

*	CONFIGURATIONS and SNAPSHOT both have about 500 millions rows



The goal:

*	Add configurations based on the the snapshot that do not
currently exists
*	Delete configurations that do not exists in the current snapshot
*	Update configuration that have a file_modified data newer than
the one stored in the CONIGURATION object.
*	Observe all changes and log to an AUDIT table



This is pretty easy in SQL, but hard in a non set based language.. Can
anyone point me in the right direction?



Can anyone point me in the right direction?

Best,

Brian



Brian C.
Operations Manager

MGAM Systems, Inc.
1 Broadway Place
Schenectady, NY 12305
<http://maps.yahoo.com/py/maps.py?Pyt=Tmap&addr=1+B...
enectady%2C+NY+12305&country=us>

removed_email_address@domain.invalid 
<mailto:removed_email_address@domain.invalid>

tel:
fax:
mobile:

518-881-1121
518-881-1128
518-727-6652
This topic is locked and can not be replied to.