RhoMobile 13,000个插件因时间问题导致问题

时间:2012-08-01 04:55:43

标签: ruby sqlite rhomobile rhodes

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

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

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

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

由于

2 个答案:

答案 0 :(得分:0)

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

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

此问题是其他人在google群组(HAYAKAWA Takashi)上的回答

答案 1 :(得分: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

我发现这种技术的速度非常快。