Уведомления запросов в SQL Server

Скачать ADO.NET

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

Существует три способа реализации уведомлений о запросах с помощью ADO.NET:

  • Реализация низкого уровня обеспечивается классом SqlNotificationRequest, который предоставляет функциональные возможности на стороне сервера, что позволяет выполнять команду с запросом на уведомления.

  • Высокоуровневая реализация обеспечивается классом SqlDependency, который является классом, предоставляющим высокоуровневую абстракцию функций уведомления между исходным приложением и SQL Server, что позволяет использовать зависимость для обнаружения изменений на сервере. В большинстве случаев это самый простой и эффективный способ использования уведомлений SQL Server с помощью управляемых клиентских приложений с помощью Microsoft SqlClient Data Provider for SQL Server.

  • Кроме того, веб-приложения, построенные с помощью ASP.NET 2.0 и более поздних версий, могут использовать вспомогательные классы SqlCacheDependency.

Уведомления о запросах удобно использовать в приложениях, которые должны обновлять дисплеи и кэши в ответ на изменения в базовых данных. Microsoft SQL Server позволяет приложениям .NET передавать команды в SQL Server и запрашивать уведомления, если выполнение одной и той же команды принесет результирующий набор, отличный от полученного первоначально. Формируемые на сервере уведомления отправляются через очереди для последующей обработки.

Уведомления можно настроить для инструкций SELECT и EXECUTE. При использовании инструкции EXECUTE SQL Server регистрирует уведомление о выполненной команде, а не саму инструкцию EXECUTE. Команда должна соответствовать требованиям, предъявляемым к инструкции SELECT. Если команда, которая регистрирует уведомление, содержит более одной инструкции, ядро СУБД создает уведомление для каждой инструкции в пакете.

При разработке приложения, где нужны надежные, передаваемые за доли секунды уведомления об изменении данных, см. подразделы Планирование эффективной стратегии уведомлений о запросах и Альтернативные подходы к уведомлениям о запросах в разделе Планирование уведомлений электронной документации на SQL Server. Дополнительные сведения об уведомлениях о запросах и SQL Server Service Broker см. по следующим ссылкам на разделы SQL Server Books Online.

Документация SQL Server

В этом разделе

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

SqlDependency в приложении ASP.NET
Демонстрирует использование уведомлений запросов из приложения ASP.NET.

Обнаружение изменений с использованием SqlDependency
Показывает, как определить, когда результаты запроса будут отличаться от изначально полученных.

Выполнение SqlCommand с помощью SqlNotificationRequest
Демонстрирует настройку объекта SqlCommand для работы с уведомлением запроса.