Efficiently convert this SQL statement to ActiveRecord loop

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


  • 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?



Brian C.
Operations Manager

MGAM Systems, Inc.
1 Broadway Place
Schenectady, NY 12305

[email protected] mailto:[email protected]



This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs