2

Возможно ли прослушивание обновления базы данных отношений? Например, мое веб-приложение хочет отправить обновление данных клиенту с помощью технологии Comet. У меня может быть программа для периодического опроса базы данных, но это не будет производительным и масштабируемым.Можно ли прослушивать обновление реляционной базы данных?

Если приложение может вытянуться к «обработчику событий» базы данных, приложение может получать уведомление каждый раз, когда данные таблицы базы данных обновляются. Это звучит более многообещающе, но я не нашел для него конкретного примера. Это шаблон слушателя.

Поддерживает ли такая реляционная база данных такая функция?

ответ

1

MS SQL Server была уведомления об изменениях запросов с 2005 года Вот больше информации о том, как использовать функцию: http://msdn.microsoft.com/en-us/library/ms175110.aspx

Oracle была эта, начиная с версии 10g, я думаю. Вот дополнительная информация: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dcn.htm

Я не знаю других распространенных РСУБД, которые поддерживают это.

1

Это, безусловно, нестандартный, поэтому в целом ответ НЕТ. В некоторых базах данных (Oracle, SQL Server) появились запатентованные решения (как и для многих других случаев - в некоторых сценариях стандарт SQL серьезно ограничен).

В конце концов, однако, STILL является опросом. Сожалею. База данных не может перенаправить событие в приложение.

В случае SQL Server уведомление об изменении будет представлять собой запись в очереди сообщений в SQL SERVER (с помощью брокера сообщений SQL Server), и вам все равно придется опросить очередь.

Это означает, что можно использовать «длинный опрос» - вы начинаете тему сепарации, которая запрашивает базу данных для следующего изменения .... блокирование (ожидание) до тех пор, пока это не произойдет.

Используя стиль

WAITFOR (RECEIVE * FROM MyQueue); 

синтаксиса. запрос будет блокироваться до тех пор, пока базовое значение не будет получено.

Теперь, если вы используете «общие» базы данных, такие как MySQL, я думаю, что все готово. Как и в: нет поддержки. Это, безусловно, более высокая конечная цель предприятия.

 Смежные вопросы

  • Нет связанных вопросов^_^