Procédure stockée vs requête directe dans Excel

J'ai un file Excel qui va sélectionner environ 1100 lignes avec 5 colonnes de données. La plupart des colonnes ont 5 numbers et sont des entiers. J'utilise une macro pour se connecter à une database SQL Server et insert ces lignes dans un, voire deux tables. C'est tout ce qu'il fait et ensuite il ferme la connection. Ainsi, l'user ouvre un file Excel contenant les lignes, clique sur un button et exécute la macro.

Ma question est la suivante: la requête doit-elle être écrite dans Excel car elle est simple et insère simplement datatables dans quelques arrays. Ou est-il plus efficace d'appeler une procédure stockée et de transmettre toutes les valeurs dans la procédure stockée et de lui atsortingbuer l'location où les valeurs vont dans les différentes tables. Quand je veux dire efficace, je veux dire qui est le plus rapide? Je sais que cela prendra probablement quelques secondes pour terminer. Je me sens juste aller à une procédure stockée est un point supplémentaire le long du path que datatables doivent atteindre avant qu'il n'atteigne les tables. Ai-je tort? Des pensées?

L'utilisation de procédures stockées dans SQL Server présente certains avantages. L'une est que SQL Server précomstack et enregistre le plan d'exécution de la requête, ce qui augmente les performances. Avec votre méthode actuelle, SQL Server devra généralement générer le plan d'exécution à chaque fois. Les procédures stockées peuvent également réduire le trafic réseau client / server.

Donc, même si cela peut sembler être un point supplémentaire sur le path, cela peut être plus rapide.

En plus de la réponse de @mark d., La security est une autre raison d'utiliser une procédure stockée.

Votre commentaire indique qu'un client saisit datatables dans Excel. Par conséquent, si vous mettez du SQL direct dans votre feuille de calcul, il y a un risque que quelqu'un ouvre votre feuille de calcul et trouve des informations sur votre database. Mais si vous utilisez une procédure stockée, il y a beaucoup less à apprendre.

De toute façon, assurez-vous que vous n'êtes pas en train de coder en dur toute string de connection / informations d'identification de count dans la feuille de calcul.