Модель платформы ADO.NET Entity Производительность - PullRequest
0 голосов
/ 22 марта 2012

Я видел похожие вопросы по той же теме, но не смог решить свою проблему.

У меня есть веб-приложение asp.net с бэкэндом DB2.И у нас есть модель структуры сущности 3.5. Поэтому, когда я загружаю страницу в первый раз, выполнение первого запроса занимает около 15 секунд.И запрос очень прост, выбирая строку из одной таблицы и предложения where индексируются.Это запрос

 protected Detail getProgramDetail(string id1,string id2, string id3)
 {
     Detail result = (from d in context.Detail
            where d.id1.equals(id1) &&
            d.id2.equals(id2) &&
            d.id3.equals(id3)
            select d).FirstorDefault();
     return result;

  }

Я тоже пытался обновить статистику, но это тоже не помогло.Прочитав другие статьи по настройке производительности, я сделал этот запрос как скомпилированный, но он все еще занимает около 15 секунд.Но последующие вызовы довольно быстрые в миллисекундах.Я думаю, что установление соединения и выполнение запроса требует времени.

Есть ли способ улучшить начальную производительность?Я пытался генерировать взгляды.Но я получаю ошибку ниже.Не уверен, как с этим справиться.

Указанный поставщик хранилища не найден в конфигурации или недействителен

Моя строка подключения находится в machine.config.

Заранее спасибо.Srividhya

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Существует несколько вариантов решения этой проблемы.

1) Добавьте кеширование второго уровня с платформой Entity. Эта статья очень полезна http://msdn.microsoft.com/hi-in/magazine/hh394143(en-us).aspx

2) Запросы и ORM не очень хорошо сочетаются. Можете ли вы использовать хранимую процедуру и Datareader, которые определенно оптимизируют производительность.

3) Если вы можете использовать Оптимизировать первое или значение по умолчанию в вашем коде

0 голосов
/ 22 марта 2012

Есть ли способ улучшить начальную производительность?.

Как насчет не ASp.NET / Entity Framework, а IIS - ЗАПУСК ПРИЛОЖЕНИЯ, включая выполнение необходимой компиляции;)?

Сделать это горячим - есть расширение, которое может вызывать страницу при запуске IIS, поэтому приложение горячее (скомпилировано, загружено в память).

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...