Nous recherchons la différence de performance entre la recherche SSIS et la jointure T-SQL. Nous voulons rejoindre deux tables; Les tables sont dans la même instance SQL Server, différentes bases de données.
Je soupçonne que la petite table jointe, la différence est minime ou négligeable. Dans ce cas, notre équipe préfère T-SQL, plus facile à code/script que de diagrammes d'écriture. De plus, dans le point de vue Devops, nous pouvons compiler/construire des scripts dans un projet de DB; Malheureusement, les SSIS ne compileront pas correctement T-SQL, je peux écrire "TestabCD" dans une instruction SSIS Exécutez SQL, et le projet construira/compilera toujours.
Cependant, pour un grand nombre de lignes qui prendront un traitement plus long, ce qui est plus rapide? T-SQL qui comporte des index et des statistiques, ou des SSIS qui se déroule tout en mémoire?
J'ai lu ces articles avec différents points de vue, l'équipe tente de gagner un consensus.
https://derekdb.wordpress.com/2012/03/13/ssis-lookup-or-t-sql-join/http://www.sqlservercl.com/blogs/jamesserra/2011/08/29/Quand-utiliser-T_2D00_SQL-OR-SSIS-FOR-ETL /
Supposons que le moteur T-SQL et les SSI sont fournis au même matériel: CPU et mémoire. Compte tenu des mêmes spécifications, j'aimerais connaître la vitesse de la performance sur une perspective d'algorithme interne.
Compte tenu des mêmes spécifications, aimerait connaître la performance
Si vos données sont sur une seule instance SQL Server, les jointures TSQL doivent toujours être plus rapides qu'une recherche sous SSIS. Ce n'est pas vraiment proche. Une requête TSQL tirera parti des index et des statistiques et l'optimiseur de requête basée sur les coûts. La jointure sera effectuée à l'intérieur de l'instance SQL Server, où elle est non seulement plus efficace, mais elle présente une plus grande mémoire et des ressources de disque qu'un pipeline SSIS.
Les recherches SSIS sont principalement destinées aux recherches de la destination, aux scénarios de données hétérogènes et aux sources sans moteur de traitement de la requête (comme des fichiers plats).
En outre, lorsque votre source de données est une seule instance SQL Server, et votre destination est une instance SQL Server (éventuellement différente), personnellement, je n'utiliserais presque jamais tout Transformations de flux de données SSIS. Au lieu de toujours utiliser SQL System SQL pour une transformation côté extrait et une étape et fusionner pour la transformation de la destination.
Je pense que vous avez mal compris le but des services d'intégration entièrement. L'utilisation des mauvais outils peut encore faire le travail, mais ce n'est pas efficace ou très sage.
Ce qui suit explique une partie du raisonnement fondamental:
Pourquoi utiliser SSIS
code préemballé pour travailler avec des sources disparates (Oracle, MySQL)
Idéal pour les grandes ETL entre sources hétérogènes (et super pour les grandes insertions, c'est-à-dire en vrac)
Est indépendant d'une instance. Portable.
Pourquoi utiliser TSQL (procédures)