0

在将大约 13,000 条记录插入设备数据库时,我遇到了问题(由于时间原因)。

有没有办法优化这个?是否有可能将这些全部放入一个事务中(因为我相信它当前正在为每个插入创建一个事务(这显然对速度有恶魔般的影响))。

目前这需要大约 10 分钟,这包括将 CSV 转换为哈希(这似乎不是瓶颈)。

愚蠢的是我没有使用 RhoSync ......

谢谢

4

2 回答 2

0

使用固定模式而不是属性包,您可以使用一个事务(请参阅下面的链接了解如何)。

http://docs.rhomobile.com/rhodes/rhom#perfomance-tips

这个问题是其他人在谷歌群组(HAYAKAWA Takashi)上回答的

于 2012-08-02T01:58:00.847 回答
0

围绕插入设置事务,然后仅在最后提交。

从他们的常见问题解答。

http://docs.rhomobile.com/faq#how-can-i-seed-a-large-amount-of-data-into-my-application-with-rhom

db = ::Rho::RHO.get_src_db('Model')
db.start_transaction
begin
  items.each do |item|
    # create hash of attribute/value pairs
    data = {
      :field1 => item['value1'], 
      :field2 => item['value2'] 
    } 
    # Creates a new Model object and saves it
    new_item = Model.create(data)
  end
 db.commit
rescue
 db.rollback
end

我发现这种技术是一个巨大的加速。

于 2012-08-11T03:24:43.700 回答