как: извлекать значения из базы данных только при их обновлении - PullRequest
2 голосов
/ 20 августа 2009

У меня есть сценарий, в котором я хочу отобразить кучу данных на веб-странице.

Данные заполняются в базе данных каким-либо процессом (который я не могу контролировать) только в (7:00) определенного времени утром или вручную запускающего процесс. (P.S Эти же данные также используются в другом месте на веб-странице в другой форме, но из другого канала.)

Я собирался добавить какую-то логику на страницу, которая

  1. извлечение данных в XML-файл и чтение данных из XML-файла (чтобы избежать поездок в базу данных)
  2. извлекать данные, только если это 7:10 утра. Но если кто-то запускает процесс вручную, база данных обновляется, но моя веб-страница не будет обновляться до 7:10 утра. Даже 1 секунда несинхронизации данных неприемлема.

Каков наилучший способ сделать это? Какие-нибудь умные решения? Я хочу, чтобы избежать повторных поездок в базу данных для тех же данных снова и снова.

SQL Server 2000, ASP.

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Можете ли вы использовать SqlCacheDependency?

И, кстати, не синхронизация в течение 1 секунды не является реалистичной целью.

0 голосов
/ 25 августа 2009

Хорошо, если я правильно читаю ...

Если это те же данные, вы можете уменьшить нагрузку на поездки в базу данных, проиндексировав соответствующие поля и превратив данные в, возможно, не столь конструктивно идеальную форму для ускорения запросов.

Проблема в том, что единственный способ узнать, были ли данные изменены или нет, это запросить их, поэтому вы не сможете избежать опроса в БД. Самым безопасным будет оптимизировать структуру и запросы, чтобы сделать налогообложение на сервере минимальным.

0 голосов
/ 20 августа 2009

Вам понадобятся какие-то решения для опроса.

Просто у меня на голове, я сделаю что-то вроде этого.

  1. Установить триггер в таблице (таблица A), которая заполняется для обновления определенного флага управления в другой таблице после вставок и обновлений, давайте назовем это таблицей управления.

  2. Настройте свой веб-сайт для опроса контрольной таблицы, скажем, каждую 1 секунду с 7:00 до 7:10. Если в контрольной таблице указано, что в таблицу A поступили новые данные, перейдите к ним и обновите страницу, в противном случае ничего не делайте. Тем не менее, хотя опрос контрольного флага каждую секунду является слишком большой проблемой, вы должны спросить себя, действительно ли это такая большая проблема, если данные не синхронизированы на пару секунд, скажем, опрашивать каждые 10 секунд, а не каждую секунду? ,

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