Notifications de requête dans SQL Server

Basées sur l’infrastructure de Service Broker, les notifications de requêtes permettent aux applications d’être notifiées en cas de modification des données. Cette fonctionnalité est particulièrement utile pour les applications qui fournissent un cache d'informations à partir d'une base de données, par exemple une application Web, et qui doivent être notifiées en cas de modification des données sources.

Il existe trois façons d’implémenter des notifications de requête à l’aide de ADO.NET :

  1. L’implémentation de bas niveau est fournie par la classe SqlNotificationRequest qui expose les fonctionnalités côté serveur, ce qui vous permet d’exécuter une commande avec une requête de notification.

  2. L’implémentation de haut niveau est fournie par la classe SqlDependency, qui est une classe qui fournit une abstraction de haut niveau de la fonctionnalité de notification entre l’application source et SQL Server, ce qui vous permet d’utiliser une dépendance pour détecter les modifications apportées au serveur. Généralement, il s'agit de la manière la plus simple et la plus efficace, pour des applications clientes managées, d'exploiter la fonctionnalité de notification de SQL Server en utilisant le fournisseur de données .NET Framework pour SQL Server.

  3. De plus, les applications web créées avec ASP.NET 2.0 ou ultérieur peuvent utiliser les classes d’assistance SqlCacheDependency.

Les notifications de requête sont utilisées pour les applications qui doivent actualiser des affichages ou des caches en réponse aux modifications des données sous-jacentes. Microsoft SQL Server permet aux applications .NET Framework d'envoyer une commande à SQL Server et de demander la génération d'une notification si l'exécution de cette commande produit des ensembles de résultats différents de ceux extraits initialement. Les notifications générées au niveau du serveur sont envoyées par l’intermédiaire de files d’attente pour un traitement ultérieur.

Vous pouvez configurer des notifications pour les instructions SELECT et EXECUTE. Lorsque vous utilisez une instruction EXECUTE, SQL Server enregistre une notification pour la commande exécutée plutôt que l’instruction EXECUTE elle-même. La commande doit satisfaire les exigences et limitations applicables aux instructions SELECT. Quand une commande qui enregistre une notification contient plusieurs instructions, le moteur de base de données crée une notification pour chaque instruction du traitement.

Si vous développez une application pour laquelle vous avez besoin de notifications fiables à la fraction de seconde près lorsque des données sont modifiées, consultez les sections Planification d’une stratégie efficace de notifications de requête et Alternatives aux notifications de requête de l’article Planification des notifications. Pour plus d’informations sur les notifications de requête et SQL Server Service Broker, consultez les liens suivants vers des articles de la documentation de SQL Server.

Documentation SQL Server

Dans cette section

Activation de notifications de requête
Explique comment utiliser les notifications de requêtes, notamment les exigences pour les activer et les utiliser.

SqlDependency dans une application ASP.NET
Montre comment utiliser les notifications de requêtes à partir d'une application ASP.NET.

Détection des modifications avec SqlDependency
Montre comment détecter si les résultats de la requête sont différents de ceux qui ont été reçus à l’origine.

Exécution de SqlCommand avec une SqlNotificationRequest
Illustre la configuration d’un objet SqlCommand pour utiliser une notification de requête.

Référence

SqlNotificationRequest
Décrit la classe SqlNotificationRequest et tous ses membres.

SqlDependency
Décrit la classe SqlDependency et tous ses membres.

SqlCacheDependency
Décrit la classe SqlCacheDependency et tous ses membres.

Voir aussi