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

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

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

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

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

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

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

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

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

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

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

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

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

Обнаружение изменений с помощью SqlDependency
Сведения об определении отличия результатов запроса от изначально полученных.

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

Ссылка

SqlNotificationRequest
Описание класса SqlNotificationRequest и всех его членов.

SqlDependency
Описание класса SqlDependency и всех его членов.

SqlCacheDependency
Описание класса SqlCacheDependency и всех его членов.

См. также раздел