Pergunta

Esta poderia ser uma pergunta carregada, e ele pode ficar rejeitada, mas completamente me frustra.

Quando você usa SQL Server em seu desenvolvimento o acesso a dados é rápido e eficiente, mas quando você usa COM conversar com Excel é piggy lento.

Não importa o que a tecnologia de acesso de dados que você usa, ADO, ADO.NET, LINQ, Entity Framework, Astoria (ADO.NET Data Services), todos eles são mais rápidos do que automatizar o Excel.

Se tudo que você quer é os dados na célula "A1" de um livro, você precisa de um Excel.Application, Excel.Workbook, Excel.Worksheet e Excel.Range objetos, apenas para obter um ponto de dados.

WTF, Por que está falando com o SQL Server mais eficiente do que falar para o Excel? Excel é local e SQL Server pode não ser.

TIA Chris

Foi útil?

Solução

Porque girando-se um grande executável monolítica que foi concebido como uma aplicação interactiva é mais lento do que falar sobre uma rede rápida para uma aplicação que foi concebida para o efeito.

Outras dicas

Cada vez que você precisa falar com excel, o servidor tem que realmente começar o programa Excel. É em um desktop escondido, mas ele ainda está começando-se todo o programa. Se você tem várias pessoas utilizando o site, que também é várias instâncias de Excel. E se eles estão compartilhando a mesma pasta de trabalho é ainda pior.

Sql Server, por outro lado, é já em execução . Basta ligar e ir embora. Foi construído para este tipo de coisa. Excel não era.

Excel ainda é um interoperabilidade COM, mesmo em 2007. Mas há muitos ajudantes

excel-desempenho -novo-whitepaper-disponível

SpreadsheetGear

excelpackage.codeplex

Esta é porque o servidor SQL é projetado para dados do servidor, Excel não é. latência da rede não vai mesmo entrar em jogo aqui até você está recuperando 1000, talvez até milhões de linhas de servidor SQL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top