Beeinträchtigt das Ausführen einer großen Abfrage für eine sekundäre Datenbank in einer Verfügbarkeitsgruppe die Transaktionsleistung in der primären Datenbank?
Dies hängt vom Synchronisierungsmodus ab, den Sie beim Konfigurieren der Verfügbarkeitsgruppe verwendet haben - Synchronisieren oder Asynchronisieren!
Auf Secondary Replik , alle Transaktionen verwenden Snapshot Isolation Ebene NUR und alle Sperrhinweise werden ebenfalls ignoriert. Aus diesem Grund ist es wichtig, Ihre Arbeitsbelastung zu testen, wenn Sie AlwaysON nutzen.
Von: Minimieren der Blockierung des REDO-Threads beim Ausführen der Berichtsauslastung auf Secondary Replica
Während das Zuordnen der Berichts-Workload zur Snapshot-Isolation das Blockieren zwischen der DML-Workload, die vom REDO-Thread auf dem sekundären Replikat angewendet wird, und der Lese- oder Berichts-Workload beseitigt, wird das potenzielle Blockieren des REDO-Threads beim Ausführen einer DDL-Operation nicht beseitigt .
Bei Verwendung von
Synchroner Modus
Das Blockieren von Problemen auf Ihrem sekundären Replikat wirkt sich auf die Leistung Ihrer Abfragen auf dem primären Replikat aus. Eine auf dem sekundären Server ausgeführte Lese-Workload (select) hat möglicherweise den Redo-Thread daran gehindert, die Änderungen anzuwenden, die vom primären Replikat stammen. Dies bedeutet, dass das primäre Replikat warten muss, bis Änderungen auf alle sekundären SYNC-Replikate angewendet wurden, bevor es lokal festgeschrieben wird und möglicherweise Zeitüberschreitungen oder Blockierungen oder Deadlocks aufweist.
Der REDO-Thread ist auf dem Readable Secondary als DB STARTUP
Befehl in zu sehen sys.dm_exec_requests
. Wenn dieser Thread blockiert wird, kann sich Ihre Lese-Workload auf dem sekundären Thread auf den primären auswirken.
Weitere Informationen finden Sie in Szenario 1: REDO wurde aufgrund einer großen Abfrage im sekundären Replikat blockiert
Asynchroner Modus
- Die primäre wartet nicht auf die Bestätigung von der sekundären. Ein Blockierungsproblem auf der Sekundärseite wird nur auf die Sekundärseite beschränkt, wobei die Redo-Warteschlange auf der Sekundärseite wächst, bis die Sperren aufgehoben sind und der Redo-Thread die Protokollblöcke anwenden kann. Dies hat keine Auswirkungen auf das primäre Replikat.
Ihre Definition von "Echtzeit oder fast Echtzeit" erfordert mehr Überlegungen unter Berücksichtigung der verwendeten Synchronisierungsmethode, der Netzwerklatenz und der Auslastung des primären Replikats sowie der Protokollaktivität, die sekundär transportiert werden muss.
SQL Server 2016 hat einige wichtige Verbesserungen im AlwaysON-Bereich vorgenommen, z