Entity Framework Где запрашивать вопросы производительности приложений MVC - PullRequest
1 голос
/ 10 ноября 2011

У меня есть таблица сайтов со следующими данными:

websiteID - int [Primary Key]
websiteName - nvarchar(128)
... (5 other columns)

На URL у меня есть маршрут с названием сайта. В методе OnActionExecuting я запускаю:

public Website GetWebsiteByName(String wwwName)
{
    return _zEntity.Websites.Where(w => w.websiteName == wwwName).First();
}

для получения данных сайта. Система может работать со многими веб-сайтами в одной базе данных (требование), но сначала возникла проблема. Когда я делаю тест производительности с ANTS, время отклика составляет 3 сек. Почему это так долго? Как мне это пропустить?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Исходя только из предоставленной вами информации, я бы предложил добавить указатель на название веб-сайта в вашей таблице.Это должно ускорить процесс.Но я бы рассмотрел сопоставление по идентификатору веб-сайта вместо имени веб-сайта: сопоставление по целым числам просто быстрее, чем сравнение строк из 128 символов.

0 голосов
/ 10 ноября 2011

Добавьте индекс в столбце websiteName или выполните запрос по идентификатору websiteID.

Без индекса ваши запросы будут выполняться медленно.

...