Pregunta

Esta podría ser una pregunta cargada y podría rechazarse, pero me frustra por completo.

Cuando usas SQL Server en tu desarrollo, el acceso a los datos es rápido y eficiente, pero cuando usas COM para hablar con Excel es lento.

No importa qué tecnología de acceso a datos utilice, ADO, ADO.NET, LINQ, Entity Framework, Astoria (Servicios de datos ADO.NET), todos son más rápidos que la automatización de Excel.

Si todo lo que desea es los datos en la celda " A1 " de un libro de trabajo, necesita los objetos Excel.Application, Excel.Workbook, Excel.Worksheet y Excel.Range, solo para obtener un punto de datos.

WTF, ¿Por qué es más eficiente hablar con SQL Server que con Excel? Excel es local y el servidor SQL puede no serlo.

TIA Chris

¿Fue útil?

Solución

Porque girar un gran ejecutable monolítico que fue diseñado como una aplicación interactiva es más lento que hablar a través de una red rápida a una aplicación que fue diseñada para este propósito.

Otros consejos

Cada vez que necesite hablar con Excel, el servidor debe iniciar realmente el programa Excel. Está en un escritorio oculto, pero todavía está iniciando todo el programa. Si tienes varias personas que usan el sitio, también hay varias instancias de Excel. Y si comparten el mismo libro de trabajo, es aún peor.

El servidor Sql, en la mano, ya se está ejecutando . Solo conéctate y vete. Fue construido para este tipo de cosas. Excel no lo era.

Excel sigue siendo una interoperabilidad de redes, incluso en 2007. Pero hay muchos ayudantes

rendimiento excelente -nuevo papel blanco-disponible

spreadsheetgear

excelpackage.codeplex

Esto se debe a que el servidor SQL está diseñado para servidores de datos, Excel no. La latencia de la red ni siquiera entrará en juego aquí hasta que esté recuperando miles, tal vez incluso millones de filas del servidor SQL

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top