Domanda

Questa potrebbe essere una domanda carica, e potrebbe essere votata, ma mi frustra completamente.

Quando si utilizza SQL Server durante lo sviluppo, l'accesso ai dati è rapido ed efficiente, ma quando si utilizza COM per parlare con Excel è troppo lento.

Non importa quale tecnologia di accesso ai dati usi, ADO, ADO.NET, LINQ, Entity Framework, Astoria (ADO.NET Data Services), sono tutti più veloci dell'automazione di Excel.

Se tutto ciò che desideri sono i dati nella cella "A1" da una cartella di lavoro, sono necessari oggetti Excel.Application, Excel.Workbook, Excel.Worksheet ed Excel.Range, solo per ottenere un punto dati.

WTF, perché parlare con SQL Server è più efficiente che parlare con Excel? Excel è locale e SQL Server potrebbe non esserlo.

TIA Chris

È stato utile?

Soluzione

Perché creare un grosso eseguibile monolitico progettato come un'applicazione interattiva è più lento che parlare su una rete veloce con un'applicazione progettata per lo scopo.

Altri suggerimenti

Ogni volta che devi parlare con Excel, il server deve effettivamente avviare il programma Excel. È in un desktop nascosto, ma sta ancora avviando l'intero programma. Se hai diverse persone che utilizzano il sito, si tratta anche di diverse istanze di Excel. E se condividono la stessa cartella di lavoro è anche peggio.

Sql Server, invece, è già in esecuzione . Connettiti e vai. È stato costruito per questo tipo di cose. Excel no.

Excel è ancora una interoperabilità, anche nel 2007. ma ci sono molti aiutanti

excel-performance -new-white paper-disponibili

spreadsheetgear

excelpackage.codeplex

Questo perché SQL Server è progettato per i dati del server, Excel no. La latenza di rete non entrerà in gioco qui fino a quando non si recuperano 1000 forse anche milioni di righe dal server SQL

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top