2010-10-11 14 views
2

hey les gars je veux utiliser une tâche ssis pour générer des db sqlite quotidiennes ... le travail ssis exporte de grandes quantités de données vers sqlite.SSIS et SQLite

le problème que je suis face est SSIS ouvre et ferme une transaction pour chaque insertion rendant cette tâche très lent

est-il un moyen que je peux demander SSIS d'ouvrir une transaction au début de la tâche, effectuer des milliers de inserts et enfin fermer la transaction

je sais que je peux le faire facilement en utilisant la dll system.data.sqlite et C# code, mais la seule raison que je veux utiliser SSIS est d'avoir une solution avec le code strict minimum

quelqu'un peut-il vous aider s'il vous plaît ... merci d'avance

Répondre

1

Bien que je ne sois pas certain du type de composants de transformation/destination que vous utilisez dans votre tâche de flux de données, je pense que vous utilisez OLE-DB-Command pour insérer des valeurs dans la destination. Le OLE-DB-Command exécute des instructions pour chaque ligne.

Donc, si vous savez que vous avez affaire à plus de quelques centaines de lignes par série, je suggère fortement d'utiliser OLE-DB-Destination qui a des options telles que le chargement rapide qui contrôlent combien de lignes seraient insérées dans un lot. (Cherchez Rows Per Batch et Maximum Insert Commit Size options)

Vous devrez peut-être utiliser une table de mise en scène pour être en mesure d'utiliser OLE-DB-Destination dans votre cas, mais il peut être beaucoup plus performante que votre implémentation actuelle (en supposant OLE-DB commande).