Я анализирую XML-файл с несколькими тысячами элементов для вставки в базу данных sql. С sqlite все работает нормально, но postgres умирает от меня с этой ошибкой:
PGError: ERROR: out of shared memory
Я наблюдал за блокировками, и похоже, что есть блокировка для каждого оператора вставки, и, хотя я просто зацикливаюсь на вызовах "save", которые выполняет activerecord (каждая из которых должна иметь транзакцию), эти блокировки кажутся такими, что открывать несколько тысяч одновременно.
В качестве эксперимента я включил вызовы сохранения в транзакцию:
Coupon.connection.transaction do
@coupon.save!
end
И это, похоже, решило мою проблему с замками. Тем не менее, кажется, что здесь что-то не так. Кто-нибудь знает, что это может быть? Я использую драйвер "pg".
Спасибо,
Том