Почему доступ к .NET Sql Server осуществляется быстрее, чем взаимодействие с Excel?

StackOverflow https://stackoverflow.com/questions/1609635

Вопрос

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

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

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

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

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

ТИА Крис

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top