2013-12-17 1 views
1

У меня есть программное обеспечение ASP.Net MVC с бэкэнд сервера SQL. У меня есть таблица с 80 столбцами, в настоящее время насчитывающая около 975413 записей. Я использую Linq для транзакций с базой данных. Проблема в том, что я заметил, что для выполнения таких команд, как SaveChanges(), Find(), Select(), требуется очень много времени и так далее.LINQ настолько медленный с огромной таблицей базы данных

Как можно уменьшить время, необходимое для выполнения таких команд Linq ...

+0

Вы проверили, что это проблема linq, а не сгенерированный SQL? – Magnus

+1

Вы могли бы показать нам несколько примеров ваших запросов? – FLGMwt

ответ

3

Вам придется сделать некоторое профилирование.

  1. Log the actual SQL commands that Linq is generating.
  2. Использование SQL Server профилирование разузнать, какие запросы являются худшими виновниками с точки зрения производительности. Изучите стратегии выполнения этих запросов.

Если Linq генерирует глупый SQL, тогда вам, возможно, придется настроить ваш код Linq или рассмотреть использование необработанных команд SQL. Если в стратегиях исполнения отображаются нежелательные стратегии, такие как сканирование таблиц, вам может потребоваться добавить индексы или изменить их (переупорядочить ключи, добавив включенные столбцы).

Обратите внимание, что Linq обычно довольно медленный. Но на самом деле, 1 миллион записей не так уж и много, я уверен, что вы можете улучшить производительность, используя выше.

Смежные вопросы