Методы кэширования данных MVC3 - PullRequest
6 голосов
/ 13 декабря 2011

У меня есть SQL-запрос (сохраненный процесс), который занимает около 8-10 секунд, чтобы вернуться, прежде чем результаты отображаются в веб-сетке. Каков наилучший метод для повышения производительности в отношении кэширования в asp.net-mvc3, чтобы пользователю не приходилось каждый раз совершать 8-10-секундное попадание для загрузки этих данных (без оптимизации запроса)?

Ответы [ 3 ]

11 голосов
/ 13 декабря 2011

Вы можете использовать класс MemoryCache , чтобы сохранить результат этого запроса под некоторым ключом.Ключом может быть хэш критериев запроса (если он у вас есть).И вот некоторые руководства на MSDN о том, как его использовать.

При реализации кэширования помните, что этот кеш хранится в памяти по умолчанию.Это означает, что если вы запускаете это приложение в веб-ферме, было бы более интересно использовать распределенный кэш, чтобы все узлы фермы совместно использовали одни и те же кэшированные данные.Это можно сделать, расширив класс ObjectCache с помощью некоторого решения распределенного кэширования.Например, memcached является популярным и имеет .NET провайдера .Другое решение распределенного кэширования - AppFabric .

3 голосов
/ 13 декабря 2011

Это кеширует это действие.

[OutputCache(Duration = 300)]
public ActionResult Action(){

//some operation

return View()
}
2 голосов
/ 13 декабря 2011

Как часто меняются данные, лежащие в основе этой хранимой процедуры?Если относительно редко, вы можете использовать очень хорошую функцию - SqlCacheDependency

http://msdn.microsoft.com/en-us/library/ms178604.aspx

Таким образом ваш тяжелый SP будет вызываться только при необходимости, а результат будет кэшироватьсякак можно дольше.

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