Am Anfang der Entwicklung unserer App verwendeten wir SQLDependency ziemlich stark, um DB-Ergebnisse zu cachen, bis die Benachrichtigungen unsere App anwiesen, eine neue Kopie zu holen.Verwenden von SQLDependency im Gegensatz zu periodischen Abfragen einer Tabelle (Leistungseinfluss)
Während des Tests haben wir festgestellt, dass die Leistung der SQL-Datenbank durch den SQL-Abhängigkeitsbenachrichtigungsdienst beeinträchtigt wurde. Wir haben die Anzahl der Tabellen, die sqldependency verwendeten, reduziert und einen großen Leistungszuwachs festgestellt. Also dachten wir, wir würden es gerade benutzen und wir gingen weiter. Wir sind jetzt nur noch ein paar Tische.
Später fanden wir heraus, dass wir die Sicherheitszugriffsebene für den Benutzernamen, der die Abhängigkeit festlegen wird, nicht zurückstufen konnten. Wir könnten mehr als eine Verbindungszeichenfolge für jede Datenbank haben (eine für Abhängigkeit und eine für den Rest der Anwendung), aber mit mehreren Datenbank- und Datenbankspiegelungen ist dies ein Problem (von sql db admin Sicht und App-Entwicklung)
an dieser Stelle ganz von SqlDependency entfernt auf der Grundlage der folgenden Logik nur darüber nachzudenken, bewegen:
- wir brauchen keine „instant“ Benachrichtigung, dass die Daten geändert haben. Wenn wir innerhalb von 1 Sekunde wüssten, wäre das schnell genug.
- Mit ein wenig Re-Factoring, konnten wir es auf nur 1 Tabelle herunterholen und diese Tabelle einmal pro Sekunde abfragen.
Wer sieht einen Fehler in dieser Logik?
Wäre das Abfragen einer Tabelle einmal pro Sekunde mehr oder weniger Belastung für die db als SQLDependency?
Hat jemand ähnliches Leistungsproblem mit SQLDependency gehabt?
Wie erkennt Ihre Umfrage, dass Änderungen stattgefunden haben? Löst aus? –
Ja - löst aus. – SLoret
Als Seitenleiste; Ich habe diese Technologie nie benutzt, aber Sie könnten es nützlich finden: http://msdn.microsoft.com/en-us/library/ms130764(v=sql.105).aspx – MarkD