Почему доступ к .NET Sql Server быстрее, чем к Excel Interop? - PullRequest
3 голосов
/ 23 октября 2009

Это может быть загруженный вопрос, и он может быть отклонен, но это меня полностью расстраивает.

Когда вы используете SQL Server в своей разработке, доступ к данным является быстрым и эффективным, но когда вы используете COM для общения с Excel, это очень медленно.

Неважно, какую технологию доступа к данным вы используете, ADO, ADO.NET, LINQ, Entity Framework, Astoria (ADO.NET Data Services), все они быстрее, чем автоматизировать Excel.

Если все, что вам нужно, это данные в ячейке "A1" из рабочей книги, вам нужны объекты Excel.Application, Excel.Workbook, Excel.Worksheet и Excel.Range, чтобы получить только одну точку данных.

WTF, почему общение с SQL Server более эффективно, чем общение с Excel? Excel локальный, а Sql Server может и не быть.

ТИА Chris

Ответы [ 4 ]

16 голосов
/ 23 октября 2009

Потому что раскрутка большого монолитного исполняемого файла, который был разработан как интерактивное приложение, медленнее, чем общение по быстрой сети с приложением, разработанным для этой цели.

6 голосов
/ 23 октября 2009

Каждый раз, когда вам нужно поговорить с Excel, сервер должен фактически запустить программу Excel. Это скрытый рабочий стол, но он все еще запускает всю программу. Если у вас есть несколько человек, использующих сайт, это также несколько экземпляров Excel. И если они делят одну и ту же книгу, это еще хуже.

Сервер Sql, с другой стороны, уже работает . Просто подключись и иди. Он был построен для такого рода вещей. Excel не было.

2 голосов
/ 23 октября 2009

Excel все еще совместный, даже в 2007 году. Но есть много помощников

Excel-производительность нового Whitepaper доступный

SpreadsheetGear

excelpackage.codeplex

0 голосов
/ 23 октября 2009

Это потому, что SQL-сервер предназначен для сервера данных, а Excel - нет. Сетевая задержка здесь даже не вступит в игру, пока вы не получите 1000, а то и миллионы строк с SQL-сервера

...