Question

C’est peut-être une question difficile, qui risque d’être rejetée, mais qui me frustre complètement.

Lorsque vous utilisez SQL Server dans votre développement, l'accès aux données est rapide et efficace, mais lorsque vous utilisez COM pour parler à Excel, il est extrêmement lent.

Peu importe la technologie d'accès aux données que vous utilisez, ADO, ADO.NET, LINQ, Entity Framework, Astoria (ADO.NET Data Services), elles sont toutes plus rapides que l'automatisation d'Excel.

Si vous ne voulez que les données de la cellule "A1" Dans un classeur, vous avez besoin des objets Excel.Application, Excel.Workbook, Excel.Worksheet et Excel.Range, pour obtenir un seul point de données.

WTF, Pourquoi parler à SQL Server est-il plus efficace que de parler à Excel? Excel est local et Sql Server peut ne pas l'être.

TIA Chris

Était-ce utile?

La solution

Parce que lancer un gros exécutable monolithique conçu comme une application interactive est plus lent que de parler via un réseau rapide à une application conçue à cet effet.

Autres conseils

Chaque fois que vous avez besoin de parler à Excel, le serveur doit démarrer le programme Excel. Il se trouve dans un bureau caché, mais lance toujours le programme complet. Si plusieurs personnes utilisent le site, il s'agit également de plusieurs instances d'Excel. Et s’ils partagent le même classeur, c’est encore pire.

Sql Server, exécute déjà . Connectez-vous et partez. Il a été construit pour ce genre de chose. Excel n'était pas.

Excel est toujours une interface utilisateur, même en 2007. Mais il existe de nombreux assistants

excel-performance -nouveau-livre blanc disponible

spreadsheetgear

excelpackage.codeplex

Cela est dû au fait que SQL Server est conçu pour traiter les données, mais pas Excel. La latence du réseau ne sera même pas prise en compte ici jusqu'à ce que vous récupériez des milliers, peut-être même des millions de lignes sur un serveur SQL

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top