Tâche de flux de données dans SSIS est très lent par rapport à l'écriture de la requête sql à Exécuter la tâche SQL

Je suis nouveau sur SSIS et d'avoir une paire de questions

  1. Je veux transférer 1,25,000 de lignes d'une table à l'autre dans la même base de données. Mais Quand j'utilise Data Flow Task, c'est prendre trop de temps. J'ai essayé d'utiliser un ADO NET Destination ainsi que d'une OLE DB Destination mais la performance était inacceptable. Quand j'ai écrit l'équivalent de la requête à l'intérieur d'un Execute SQL Task il a fourni un rendement acceptable. Pourquoi une telle différence dans la performance.

    INSERT INTO table1 select * from table2

  2. Basé sur la première observation, j'ai changé mon forfait. Il est exclusivement composé de Execute SQL Tasks soit directement requête ou une procédure stockée. Si je peux résoudre mon problème en utilisant uniquement les Execute SQL Task, alors pourquoi aurait-on utiliser SSIS ainsi que de nombreux documents et articles indiquer. J'ai vu qu'il est fiable, facile à entretenir et relativement rapide.
Avez-vous essayé de briser le transfert de blocs, par exemple 10K lignes à la fois? La journalisation peut être traumatisant pour les grands de simples opérations.
alors que l'aide de la tâche de flux de données, il se casse la ligne de la somme sur 10k partition et insérez ensuite, est-ce la cause de ralentir?
Avez-vous sélectionnez "chargement rapide" dans le oledb destination?
ouais j'ai utilisé le chargement rapide aussi. Mais après la lecture de la réponse posté par billinkc, je le laisse rester avec l'ensemble de la tâche d'Exécution SQL et l'exécuter par l'Agent SQL. Je suis maintenant convaincu !

OriginalL'auteur Teju MB | 2013-04-24