Dans les offres, j'exécute une tâche de flux de données et je me demande quelle est la différence dans les coulisses entre l'utilisation de "commande de table ou d'affichage" vs "commande sql" pour le mode d'accès aux données pour un OLE DB La source. Par exemple, supposons que j'ai une table appelée MyTable avec 5 colonnes (colonne1, colonne2, colonne3, colonne4, colonne5), mais je ne suis intéressé que par la colonne1. Je vois ces 2 options:
Lorsque j'ai dirigé un test, la deuxième option semblait courir beaucoup plus vite, mais j'aimerais que la confirmation de ce qui se passe dans des scènes lorsque j'utilise "table ou affichage" puis sélectionner certaines colonnes. J'apprécierais toute idée que tout le monde puisse fournir.
(Dans mon étui d'utilisation particulière, MyTable est une table de base de données Azure hors site et la colonne2 présente de grandes quantités de XML à l'intérieur. Je suppose que toutes les colonnes arrivaient sur le fil lorsque j'ai utilisé "table ou vue")
Je ferai une petite expérience. Je vais utiliser SQL Profiler pour voir ce qui se passe en arrière-plan tout en utilisant un OLEDB Source
Dans les deux cas:
J'ai une table nommée dbo.Table_1
qui contient 3 colonnes (ID, nom, département)
J'ai utilisé SQL Profiler pour régler la base de données contenant cette table et j'ai utilisé le mode d'accès 2, sous les résultats:
table ou affichage - sélectionner uniquement la colonne ID
Le profileur montre que la commande suivante est exécutée
SELECT * FROM [dbo].[Table_1]
Même si vous sélectionnez une seule colonne, la source OLEDB lit toutes les données puis filtre les colonnes après les avoir tous lues.
Commande SQL
Le profileur montre que la commande suivante est exécutée
SELECT [ID] FROM [dbo].[Table_1]
Récemment, j'ai publié un article qui contient plus de détails, vous pouvez le vérifier sur le lien suivant: