Domanda

Stiamo dicendo il nostro cliente di mettere un file di database di SQL Server (mdf), su una diversa unità fisica del file di log delle transazioni (LDF). La società tech (assunto dal nostro cliente) ha voluto mettere il log delle transazioni su una più lenta (ad esempio, meno costoso) unità rispetto dell'unità di database, perché con i registri delle transazioni, si sta solo sequencially scrivendo nel file di registro.

Ho detto loro che ho pensato che l'unità (in realtà una configurazione RAID) necessario per essere su un disco veloce pure, perché tutti i dati cambiando chiamata al database, le esigenze essere salvato lì, così come per il database stesso.

Dopo aver detto questo, però, mi sono reso conto che non ero del tutto sicuro di questo. Ha la velocità del drive log delle transazioni fare una differenza significativa in termini di prestazioni ... se l'unità con il database è veloce?

È stato utile?

Soluzione

La velocità della unità di registro è il fattore più critico per un database ad alta intensità di scrittura. Nessun aggiornamento possono verificarsi più velocemente di quanto il registro può essere scritto, in modo che il drive deve sostenere il vostro massima frequenza di aggiornamento sperimentato in un picco. E tutti gli aggiornamenti generano log. file di database (MDF / NDF) gli aggiornamenti possono permettersi tassi più lenti di scrittura a causa di due fattori

  • aggiornamenti dei dati sono scritti pigramente e arrossì sul punto di controllo. Ciò significa che un picco di aggiornamento può essere ammortizzata sulla unità erogato medio
  • più aggiornamenti possono accumulare su una singola pagina e quindi avranno bisogno di una singola scrittura

Quindi hai ragione che il registro di throughput è critica.

Ma, allo stesso tempo, le scritture di registro hanno un modello specifico di scritture sequenziali: registro viene sempre aggiunta alla fine. Tutte le unità meccaniche hanno un rendimento molto più elevato, sia per letture e le scritture, per le operazioni sequenziali, in quanto comportano il movimento meno fisico delle testine del disco. Così è anche vero ciò che i vostri ops ragazzi dicono che un auto più lenta può offrire infatti un throughput sufficiente.

Ma tutto questi sono dotati di alcuni grandi avvertimenti:

  • l'unità più lenta (o una combinazione di RAID) deve veramente offrire alta produttività sequenziale
  • l'unità deve vedere le scritture di registro da uno e un solo database, e nient'altro. Qualsiasi altra operazione che possa interferire con la posizione della testa del disco corrente danneggia la scrittura throughput e causare prestazioni del database più lento
  • il registro deve essere solo di scrittura, e non leggere. Tenete a mente che alcuni componenti hanno bisogno di leggere dal registro e, quindi, si muoveranno la meccanica del disco per altre posizioni in modo da poter rileggere il registro scritto in precedenza:
    • replica transazionale
    • il mirroring del database
    • backup del registro

Altri suggerimenti

In termini semplicistici, se si parla di un database OLTP, la velocità effettiva è determinata dalla velocità delle scritture del log delle transazioni. Una volta che questo soffitto performance è successo, tutte le altre azioni che dipendono devono attendere il commit per accedere al completo.

Questo è un introito molto semplicistico sulle parti interne del log delle transazioni, a cui sono dedicati interi libri, ma i resti del punto rudimentale.

Ora, se il sistema di storage si sta lavorando può fornire l'IOPS che si richiedono per supportare sia i file di registro delle transazioni e dei dati del database insieme poi un'unità condivisa / LUN fornirebbe in modo adeguato per le vostre esigenze.

Per fornire una specifica linea d'azione raccomandata avrei bisogno di sapere di più sul carico di lavoro del database e le prestazioni si richiede il server di database di consegnare.

mettere le mani sul titolo SQL Server 2008 internals per ottenere uno sguardo approfondito nelle parti interne del log delle transazioni di SQL Server, è uno dei migliori titoli di SQL Server là fuori e pagherà per sé nel minuti dal valore che si guadagna da lettura.

Bene, il log delle transazioni è la struttura principale che fornisce acido, può essere un grande collo di bottiglia per le prestazioni, e se lo fai backup regolarmente il proprio spazio richiesto ha un limite superiore, quindi vorrei metterlo in una cassetta di sicurezza, guida veloce con appena abbastanza spazio + un po 'di margine.

Il log delle transazioni dovrebbe essere sui dischi più veloci, se è solo in grado di completare la scrittura per il registro che può fare il resto della transazione in memoria e lasciarlo colpito disco successivamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top