Мы предоставляем критически важное приложение для клиента. Это приложение winforms от clickonce, которое использует несколько служб WCF, взаимодействующих с базой данных Oracle.
Служба размещается на сервере приложений Oracle с двумя серверами веб-кэша, расположенными спереди для балансировки нагрузки. База данных находится на другом отдельном компьютере.
Дело в том, что приложение теперь имеет низкую производительность, и нам нужно ускорить его. Мы испробовали множество методов: оптимизировать запросы с добавлением индексов при анализе планов объяснения, сократить количество обращений в службу поддержки от клиента и профилировать клиентское приложение на предмет ошибок.
Но мне бы очень хотелось, чтобы два настроили слой кэширования поверх базы данных или WCF. Данные являются критическими и изменяются довольно часто, поэтому необходимо получать самые последние данные по всем запросам.
Поэтому, когда данные изменяются в базе данных, кэш-память должна немедленно истекать. Запросы сложны с двумя 14-15 объединениями ...
Как правильно сделать это и какие инструменты / рамки мне следует использовать? Я слышал о memcached .. это хорошо?