Pourquoi ne pas séparer cela en 2 étapes ?
Dans une première boucle effectuer toutes les vérifications nécessaires, puis dans une 2eme boucle effectuer les insertions.
De cette façon on évite que les mises à jour des index dues aux insertions se fassent à chaque tour de boucle...
Je ne suis pas expert en BDD mais j'essayerais ça.
Bonne chance.


