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

Скачать ADO.NET

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

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

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

  • Высокоуровневая реализация обеспечивается классом SqlDependency, который является классом, предоставляющим высокоуровневую абстракцию функций уведомления между исходным приложением и SQL Server, что позволяет использовать зависимость для обнаружения изменений на сервере. В большинстве случаев это самый простой и самый эффективный способ задействовать возможности уведомления SQL Server в управляемых клиентских приложениях с помощью поставщика данных Microsoft SqlClient для 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.

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

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

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

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

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

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

Ссылка

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

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

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

Дальнейшие действия