Vantaggio di utilizzare un'istantanea del database a scopo di reportistica


8

Qual è il vantaggio in termini di prestazioni dell'utilizzo di un'istantanea di un database a scopo di reportistica?

A mio modo di vedere, probabilmente ridurrebbe le prestazioni poiché per ogni scrittura nel database originale, un'altra scrittura dovrebbe essere fatta per lo snapshot stesso.

Vedo che useresti le istantanee ogni volta che vuoi fare un rapporto sui dati fino a quel momento, ma ciò non rientra nella categoria delle prestazioni.

Quindi, c'è ancora un vantaggio in termini di prestazioni?

Risposte:


7

L'uso di un'istantanea del database situata sul server OLTP di produzione, con ogni probabilità, peggiorerà le prestazioni. Ci sono due ragioni principali:

  1. Spese generali di scrittura extra. Le istantanee sono copia su scrittura, quindi questo avrà ovviamente un impatto sulle prestazioni.

  2. Un'istantanea condividerà le pagine del vecchio database su disco, ma utilizza la propria memoria nel pool di buffer. Se hai una tabella di grandi dimensioni, finirà per consumare memoria sia per il database OLTP, sia per lo snapshot, anche per le pagine non modificate. È possibile finire con un uso eccessivo della memoria a causa di ciò, il che può portare a più I / O del disco se il server non ha un sacco di RAM libera.

Quindi, se stai cercando di rendere la segnalazione meno invadente su un solo server, probabilmente stai meglio interrogando semplicemente il database OLTP e usando i suggerimenti WITH (NOLOCK), e poi regnando le cose con il governatore delle risorse, se necessario. Oltre a ciò, guarda in una sorta di sistema di ridimensionamento (log shipping, mirroring, ecc.)


Sono d'accordo che l'istantanea può peggiorare le cose, ma se stai usando 2008 R2 il suggerimento NOLOCK non fa nulla per aiutare le prestazioni OLTP quando stai segnalando. stackoverflow.com/questions/15770402/…
James Jenkins,

1

L'unico vantaggio in termini di prestazioni che posso vedere dell'utilizzo di snapshot DB è che i problemi di blocco e blocco sono notevolmente ridotti quando si utilizza uno snapshot per i report.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.