使用ActiveRecord从远程托管数据库缓存表

时间:2017-08-04 16:19:28

标签: ruby-on-rails sql-server caching activerecord

我在远程主机中有一个很大的Microsoft SQL Database,我使用ActiveRecord 5tiny_tdsactiverecord-sqlserver-adapter连接。我需要对一个table进行多次查询,以查找属于对象的条目。问题是有数千个查询需要很长时间才能在远程数据库上执行。

是否可以缓存整个table,以便在本地缓存表中执行查询以使其更快?

编辑:此操作的目的是将旧系统中的数据同步到新系统。以下循环用于导入:

MsSqlDbEntity.where(deleted: nil).where.not(verified: nil).each do |entity|
  entity_import(entity)
end

这些是使用的方法:

def entity_import(ms_sql_db_entity)
  new_db_entity = NewDbEntity.new(
      # Some params from ms_sql_db_entity
  )

  sub_entity_import(ms_sql_db_entity, new_db_entity) if new_db_entity.save
end

def sub_entity_import(ms_sql_db_entity, new_db_entity)
  MsSqlDbSubEntity.where(ms_sql_db_entity_id: ms_sql_db_entity.id).each do |sub_entity|
    new_db_sub_entity = NewDbSubEntity.create(
        new_db_entity_id: new_db_entity.id,
        # Some other params
    )
  end
end

entitysub_entityone-to-many关系。

0 个答案:

没有答案