【发布时间】:2010-10-10 02:31:08
【问题描述】:
我正在解析一个包含几千个元素的 XML 文件,以便插入到 sql 数据库中。 sqlite 一切正常,但 postgres 因这个错误而死在我身上:
PGError: ERROR: out of shared memory
我正在监视锁,看起来每个插入语句都有一个锁,虽然我只是循环调用 activerecord“保存”调用(每个调用都应该有一个事务),但这些锁似乎一直存在,所以我一次打开几千个。
作为一个实验,我将保存调用封装在一个事务中:
Coupon.connection.transaction do
@coupon.save!
end
这似乎解决了我的锁定问题。但是,这里似乎确实有问题。有谁知道它可能是什么?我正在使用“pg”驱动程序。
谢谢, 汤姆
【问题讨论】:
-
您是否考虑过使用 Kettle 来完成这项任务? kettle.pentaho.com
-
你有 SQL Rails 生成的日志吗?
标签: ruby-on-rails postgresql activerecord