2 votes

SSIS et SQLite

Salut les gars, je veux utiliser une tâche SSIS pour générer des bases de données SQLite quotidiennes... la tâche SSIS exporte de grandes quantités de données vers SQLite.

Le problème auquel je suis confronté est que SSIS ouvre et ferme une transaction pour chaque insertion, rendant cette tâche extrêmement lente.

Existe-t-il un moyen de demander à SSIS d'ouvrir une transaction au début de la tâche, d'effectuer des milliers d'insertions et enfin de fermer la transaction?

Je sais que je peux facilement le faire en utilisant la DLL system.data.sqlite et du code C#, mais la seule raison pour laquelle je veux utiliser SSIS est d'avoir une solution avec un minimum de code.

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

1voto

orka Points 1178

Bien que je ne sois pas sûr du type de composants 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 traitez plus que juste quelques centaines de lignes par exécution, je vous recommande vivement d'utiliser OLE-DB-Destination qui propose des options telles que fast-load pour contrôler le nombre de lignes qui seront insérées par lot. (cherchez les options Nombre de lignes par lot et Taille maximale d'insertion d'engagement)

Vous devrez peut-être utiliser une table de mise en scène pour pouvoir utiliser OLE-DB-Destination dans votre cas, mais cela pourrait être beaucoup plus performant que votre implémentation actuelle (en supposant que vous utilisez OLE-DB Command).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X