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
- 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 unADO NET Destination
ainsi que d'uneOLE DB Destination
mais la performance était inacceptable. Quand j'ai écrit l'équivalent de la requête à l'intérieur d'unExecute SQL Task
il a fourni un rendement acceptable. Pourquoi une telle différence dans la performance.INSERT INTO table1 select * from table2
- 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 lesExecute 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 !
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
Vous devez vous connecter pour publier un commentaire.
Différence de performance
Il y a beaucoup de choses qui pourraient provoquer l'exécution d'une "droite" la tâche de flux de données et l'équivalent de la Tâche d'Exécution SQL.
Execute SQL Task
s INSÉRER DANS. Les versions plus récentes de SSIS par défaut de la méthode d'accès à la "Rapide" de la version de la destination. Cela se comporte beaucoup plus comme le jeu de base équivalent et d'obtenir de meilleurs performances.La conception de l'emballage
Il n'y a rien d'intrinsèquement mauvais avec un package SSIS qui est juste
Execute SQL Task
s. Si le problème est facilement résolu en exécutant des requêtes, puis j'avais renoncer SSIS entièrement et écrire la procédure stockée appropriée(s) et horaire avec l'Agent SQL et faire.Peut-être. Que j'aime toujours sur l'utilisation de SSIS, même pour les cas "simples", comme ce est qu'il ne peut assurer l'uniformité du produit. Qui peut ne pas sembler beaucoup, mais à partir d'un point de vue de l'entretien, il peut être agréable de savoir que tout c'est-marinage avec les données contenues dans ces source contrôlée par des packages SSIS. Je n'ai pas à vous rappeler ou de train de la nouvelle personne que les tâches A-C sont "simples", de sorte qu'ils sont stockés procs appelé à partir d'une tâche de l'Agent SQL. Tâches D-J ou K, sont même plus simple si c'est juste "en ligne" des requêtes dans les travaux de l'Agent pour le chargement de données et puis nous avons des forfaits pour le reste des choses. Sauf pour le Service Broker chose et certains services web, ceux qui sont trop mise à jour de la base de données. Plus je vieillis et plus je obtenir de l'exposé, le plus que je peux trouver de la valeur dans un uniforme, même si exagéré, à l'approche de la distribution de la solution.
La Performance n'est pas tout, mais la SSIS de l'équipe a établi l'ETL repères à l'aide de SSIS, donc il a certainement la capacité de pousser des données dans un hurry.
Que cette réponse s'allonge, je serais tout simplement laisser que les avantages de SSIS et le Flux de Données de plus de droite TSQL sont indigènes, hors de la zone
Il est difficile de battre ces pour mon argent.
J'en ai fini avec SSIS, mais quand je le programmer à partir de sql server, il ne parvient pas à exécuter, veuillez consulter ce lien pour mon post. stackoverflow.com/questions/16766416/...
OriginalL'auteur billinkc
Si vous êtes de Passage Variables SSIS en tant Que Paramètre de mappage de paramètres de l'Onglet et assigner des valeurs à Ces Variables par l'Expression, Alors Votre Tâche d'Exécution SQL consommer beaucoup de temps dans l'Évaluation de cette Expression.
L'utilisation de l'Expression de la Tâche(Séparément) Pour affecter des Variables au Lieu d'utiliser l'Expression dans la Variable Tab.
OriginalL'auteur ADIL