Je suis en train d'analyser un fichier XML contenant quelques milliers d'éléments pour l'insérer dans une base de données sql. Tout fonctionne très bien avec SQLite, mais postgres meurt sur moi avec cette erreur:Postgres - mémoire insuffisante sur l'insertion en boucle
PGError: ERROR: out of shared memory
Je surveillais les verrous, et il semble qu'il y ait un verrou pour chaque instruction d'insertion, et bien que je suis juste en boucle sur activerecord « sauver "les appels (qui devraient avoir une transaction chacun) ces verrous semblent traîner de telle sorte que j'ai quelques milliers ouverts à la fois.
A titre d'expérience, j'Enveloppez la sauvegarde des appels dans une transaction:
Coupon.connection.transaction do
@coupon.save!
end
Et qui semble avoir résolu mon problème de serrures. Cependant, il semble que quelque chose ne va pas ici. Quelqu'un sait ce que c'est? J'utilise le pilote "pg".
Merci, Tom
Avez-vous considéré Kettle pour la tâche? http://kettle.pentaho.com/ –
avez-vous un journal de ce que SQL Rails génère? – peufeu