Planen von Benachrichtigungen
Um eine effektive Verwendung von Abfragebenachrichtigungen zu gewährleisten, sollten Sie überlegen, ob Ihre Anwendung von Abfragebenachrichtigungen profitieren kann, ob die von Ihrer Anwendung verwendeten Abfragen Benachrichtigungen unterstützen und welche Strategie Ihre Anwendung zum Abonnieren und Empfangen von Benachrichtigungen verwenden soll.
Abfragebenachrichtigungen stellen ein bequemes Verfahren zum Verringern der Roundtrips zur Datenbank dar, wenn sich die Daten in der Abfrage relativ unregelmäßig ändern, wenn die Anwendung keine sofortige Aktualisierung verlangt, wenn sich die Daten ändern und wenn die Abfrage die unter Erstellen einer Abfrage für die Benachrichtigung beschriebenen Anforderungen und Einschränkungen erfüllt. Zahlreiche webbasierte Anwendungen erfüllen diese Kriterien, und diese Anwendungen können von Abfragebenachrichtigungen profitieren.
Nicht in jedem Szenario sind Abfragebenachrichtigungen von Vorteil. Abfragebenachrichtigungen eignen sich in Situationen, wenn eine Anwendung häufig Daten aus der Datenbank liest, Aktualisierungen der Daten jedoch relativ unregelmäßig stattfinden. Eine Onlinekataloganwendung wird z. B. häufiger angezeigt, als der Katalog aktualisiert wird. Für einen Onlinewarenkorb kann der Inhalt einer Abfrage jedoch relativ häufig aktualisiert werden, daher bieten Abfragebenachrichtigungen weniger Vorteile.
Abfragebenachrichtigungen sind effizienter, wenn eine Anwendung Abfragen ausgibt, die eine gemeinsame Struktur besitzen und sich nur in den Werten der Parameter unterscheiden. Beispiel:
SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 300
SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 500
In diesem Fall verwenden die Abfragebenachrichtigungsabonnements für beide Benachrichtigungen die gleiche interne Vorlage gemeinsam und erfordern daher weniger Aufwand in SQL Server als zwei Benachrichtigungen mit einer unterschiedlichen Abfragestruktur. Beachten Sie jedoch, dass die Parameter in den Abfragen erhalten bleiben. Obwohl die Abfragen die gleiche Vorlage gemeinsam verwenden, bewirkt das Hinzufügen eines Elements mit einem ListPrice von 350 eine Benachrichtigung für die zweite Abfrage, nicht jedoch für die erste.
Wenn Abfragebenachrichtigungen für eine Tabelle aktiv sind, sind Aktualisierungen der Tabelle aufwendiger. Datenbankmodul muss zusätzliche Arbeiten ausführen, um die Abonnements zu überprüfen und ggf. Benachrichtigungen zu generieren. Das Wiederverwenden interner Vorlagen minimiert den Aufwand pro Abonnement. Aus diesem Grund sollten Sie Abfragebenachrichtigungen nur für Anwendungen verwenden, die Abfragen mit einer ähnlichen Struktur übermitteln. Eine Anwendung, die Abfragen mit unterschiedlichen Strukturen übermittelt, sollte keine Abfragebenachrichtigungen verwenden.
Eine Abfrage, die Katalogelemente in einem bestimmten Preisbereich anzeigt, übermittelt z. B. Abfragen mit der gleichen Struktur. In diesem Fall kann Datenbankmodul die interne Vorlage für jede Abfrage wiederverwenden, und Abfragebenachrichtigungen optimieren möglicherweise die Leistung. Eine Abfrage, die Ad-hoc-Berichte ermöglicht, übermittelt jedoch Abfragen mit einer unterschiedlichen Struktur. In diesem Fall sollte die Anwendung keine Abfragebenachrichtigungen verwenden.
Datenbankmodul verwaltet eine interne Vorlage, wenn diese von mindestens einem registrierten Abonnement verwendet wird. Datenbankmodul schränkt die Anzahl der verschiedenen internen Vorlagen für eine bestimmte Tabelle ein. Sobald dieser Grenzwert erreicht wird, registriert Datenbankmodul keine weiteren Abonnements, die das Erstellen einer neuen Vorlage bewirken würden. Datenbankmodul generiert stattdessen sofort eine Abonnementnachricht, die angibt, dass das Abonnement nicht registriert werden konnte.
Siehe auch
Konzepte
Erstellen einer Abfrage für die Benachrichtigung