Кэширование может иметь много разных значений для приложения ASP.Net, распространяемого от браузера до вашего оборудования с IIS, приложением, базой данных, расположенной посередине.
Кэширование, о котором вы говорите, - это кэширование на уровне базы данных, оно в основном прозрачно для вашего приложения. Этот уровень кэширования будет включать пулы буферов, кэши операторов и т. Д. Убедитесь, что на вашем сервере БД достаточно ОЗУ. Теоретически сервер БД должен иметь возможность загружать все хранилище БД в память. На этом уровне вы мало что можете сделать, если вы предварительно не извлечете ожидаемые данные при запуске приложения и не убедитесь, что они находятся в кеше БД.
С другой стороны, система распределенного кэширования в памяти. Помимо memcache и speed, вы можете взглянуть на некоторые коммерческие решения, такие как NCache или Oracle Coherence . У меня нет опыта ни в одном из них, чтобы рекомендовать. Этот уровень кэширования обещает масштабируемость при более низких затратах. По сравнению с этим масштабировать уровень БД дорого. Возможно, вам придется учитывать такие аспекты, как пропускная способность сети. Этот тип кэширования, особенно с аннулированием и истечением срока действия, может быть сложным
Вы можете кэшировать на уровне веб-служб, используя кэширование вывода на уровне IIS (в IIS 7) и уровне ASP.Net.
На уровне приложения вы можете использовать кеш ASP.Net. Это тот, который вы можете контролировать больше всего, и он дает вам хорошие преимущества.
Затем происходит кэширование на уровне веб-прокси клиента, которым можно управлять с помощью заголовка HTTP для управления кэшированием.
Наконец, у вас есть кеширование на уровне браузера, просмотр состояния и куки для небольших данных.
И не забывайте, что такие устройства, как SAN-кеши, также имеют уровень доступа к физическому диску.
В целом, кеширование может происходить на многих уровнях, и вы сможете проанализировать и реализовать лучшее решение для вашего сценария. Вы выяснили стабильность и изменчивость ваших данных, ожидаемую нагрузку и т. Д. Я считаю, что кэширование на уровне ASP.Net (особенно для объектов) дает вам большую гибкость и контроль.