Unsere SQL Sever 2008-Anwendungsdatenbank wird von Server A auf Server B repliziert (Push-Replikation). Wir verwenden die Kopie, nennen wir sie database_b, auf Server B, um Berichte zu erstellen und andere Abfragen auszuführen, damit unsere Berichte die Anwendung nicht beeinträchtigen. Derzeit nutzen wir ineffiziente Ansichten, um Daten in mehreren Tabellen in database_b zu kombinieren, damit das Verfassen von Berichten für unsere Berichtsersteller (die über grundlegende SQL-Kenntnisse verfügen) vereinfacht wird.
99,9% der Datenbankaktivität sind INSERTS. Daher suchen wir nach einer Möglichkeit, die ineffizienten Ansichten durch Tabellen zu ersetzen, die wir optimieren können. Hier ist ein vereinfachtes Beispiel:
Es gibt eine appointment
Tabelle und eine location
(Nachschlagetabelle). Jedes Mal, wenn ein neuer Termin geplant ist, wird der appointment
Tabelle eine Zeile hinzugefügt . Jedes Mal, wenn dieses EINFÜGEN passiert, möchte ich das appointment_id
und den entsprechenden Standortnamen ( location_id
aus beiden Tabellen verbinden) in eine Berichtstabelle einfügen .
Ich habe dies mit einem Trigger in der Termintabelle in database_b auf Server B erreicht.
Meine Frage ist - gibt es besondere Überlegungen, da database_b eine replizierte Kopie ist? Muss ich mir Sorgen machen, dass ein fehlerhafter Trigger den gesamten (Push-) Replikationsprozess durcheinander bringt? Fehlt mir noch etwas?
Leider ist es schwierig, dies in unserer Entwicklungsumgebung zu testen, so dass ich nicht die Möglichkeit habe, viel zu probieren.