Фон
У меня есть база данных SQL CE, которая постоянно обновляется (каждую секунду).
У меня есть (веб) приложение, которое позволяет пользователю просматривать данные в режиме реального времени. В какой-то момент пользователь может нажать кнопку «сделать снимок», и он откроет снимок в другом окне.
И затем в этой форме есть кнопки «печать» и «загрузка», которые либо сгенерируют страницу для печати, либо будут передавать данные в виде файла CSV - но должен использоваться тот же моментальный снимок данных , т.е. Я не могу пойти в БД, чтобы получить последние данные для этого.
Подробности
- База данных SQL CE предоставляется через веб-службу WCF.
- Снимок состоит из 500 записей по 10 столбцов в каждой. Время истечения на снимке 2 часа достаточно.
- Это приложение с низким трафиком, поэтому я не ожидаю более нескольких (5) подключений одновременно.
- Потеря снимка не имеет большого значения, пользователь может просто создать новый.
- осуществляется через самодостаточный веб-сервис WCF с использованием Linq-to-SQL.
- Веб-сайт ASP.NET MVC, размещенный на UltiDev Cassini.
- база данных и веб-сайт, скорее всего, будут находиться в одном окне при развертывании. Все приложение связано с интранетом.
Задача
Мне нужно кэшировать моментальный снимок данных в тот момент, когда пользователь нажал кнопку «сделать снимок», чтобы я мог использовать те же данные для создания страницы печати или создания файла для загрузки.
Решение 1:
Каждый раз, когда необходимо создать снимок, я буду создавать таблицу в базе данных. Поскольку в SQL CE нет временных таблиц, мне нужно будет их самостоятельно почистить.
Решение 2:
Кэшируйте снимок в памяти на сервере БД или веб-сервере.
Вопрос: Что-то не так с предлагаемыми решениями? Любые другие решения?