Vorteil der Verwendung eines Datenbank-Snapshots für Berichtszwecke

8

Was ist der Leistungsvorteil der Verwendung eines Snapshots einer Datenbank für Berichtszwecke?

So wie ich es sehe, würde es wahrscheinlich die Leistung herabsetzen, da für jeden Schreibvorgang in der Originaldatenbank ein weiterer Schreibvorgang für den Snapshot selbst durchgeführt werden müsste.

Ich kann sehen, dass Sie Snapshots verwenden würden, wenn Sie bis zu diesem Zeitpunkt Daten melden möchten, dies fällt jedoch nicht in die Leistungskategorie.

Gibt es also wieder einen Leistungsvorteil?

ivanmp
quelle

Antworten:

7

Die Verwendung eines Datenbank-Snapshots auf Ihrem OLTP-Produktionsserver führt höchstwahrscheinlich zu einer Verschlechterung der Leistung. Es gibt zwei Hauptgründe:

  1. Zusätzlicher Schreibaufwand. Snapshots werden beim Schreiben kopiert, was sich offensichtlich auf die Leistung auswirkt.

  2. Ein Snapshot gibt Seiten aus der alten Datenbank auf der Festplatte frei, verwendet jedoch seinen eigenen Speicher im Pufferpool. Wenn Sie eine große Tabelle haben, wird am Ende Speicher sowohl für die OLTP-Datenbank als auch für den Snapshot verbraucht, selbst für die nicht geänderten Seiten. Dies kann zu einer zusätzlichen Speicherbelegung führen, die zu mehr Festplatten-E / A führen kann, wenn Ihr Server nicht über genügend freien Arbeitsspeicher verfügt.

Wenn Sie also versuchen, die Berichterstellung auf nur einem Server weniger aufdringlich zu gestalten, ist es wahrscheinlich besser, nur die OLTP-Datenbank abzufragen, WITH (NOLOCK) -Hinweise zu verwenden und bei Bedarf die Dinge mit dem Ressourcen-Governor zu regeln. Schauen Sie sich darüber hinaus eine Art Scale-Out-System an (Protokollversand, Spiegelung usw.).

db2
quelle
Ich bin damit einverstanden, dass Snapshots die Situation verschlimmern können. Wenn Sie jedoch 2008 R2 verwenden, trägt der Hinweis NOLOCK nicht zur Verbesserung der OLTP-Leistung bei, wenn Sie Berichte erstellen. stackoverflow.com/questions/15770402/…
James Jenkins
1

Der einzige Leistungsvorteil, den ich bei der Verwendung von DB-Snapshots sehen kann, besteht darin, dass Sperr- und Blockierungsprobleme erheblich reduziert werden, wenn ein Snapshot für die Berichterstellung verwendet wird.

Stanley Johns
quelle