DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 230785 - Geändert am: Freitag, 15. Mai 2015 - Version: 1.0

 
SQL Server erfordert, dass Systeme unterstützen "garantierte Zustellung an stabilen Medien", wie in beschrieben die Anforderungen an die SQL Server i/o Zuverlässigkeit Programm überprüfen (http://download.microsoft.com/download/F/1/E/F1ECC20C-85EE-4D73-BABA-F87200E8DBC2/SQL_Server_IO_Reliability_Program_Review_Requirements.pdf) Downloaden Sie Dokument. Weitere Informationen zu den Eingabe- und Anforderungen für die SQL Server-Datenbank-Engine klicken Sie auf die folgende Artikelnummer, fahren Sie mit dem Artikel in der Microsoft Knowledge Base:
967576  (http://support.microsoft.com/kb/967576/ ) Microsoft SQL Server-Datenbank-Engine Input/Output Anforderungen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt, wie Microsoft SQL Server-Protokollierung und Algorithmen Zuverlässigkeit und Integrität erweitern.

Erfahren Sie mehr über die zugrunde liegenden Konzepte der Motoren und ARIES (Algorithmus für Recovery und Isolationssemantik Nutzung), finden Sie unter die folgenden ACM-Buchungen Datenbanksysteme Dokument (unter "Volume 17, Nummer 1, März 1992):

Leitender Verfasser dieses Dokuments ist C. Mohan. Das Dokument wird die SQL Server-Techniken zum Erweitern von Zuverlässigkeit und Integrität in Bezug auf Fehler.

Es wird empfohlen, Sie den folgenden Artikel in der Microsoft Knowledge Base weitere Informationen zum Zwischenspeichern lesen und alternative Fehler Modus Diskussionen:
86903  (http://support.microsoft.com/kb/86903/ ) Beschreibung der Schreibcache-Controller in SQL Server
234656  (http://support.microsoft.com/kb/234656/ ) Informationen zur Verwendung von Laufwerk-Caches mit SQL Server, die jeder Datenbankadministrator kennen sollte

Weitere Informationen

Bevor wir eingehende Diskussion beginnen, werden einige der Begriffe, die in diesem Artikel verwendet werden in der folgenden Tabelle definiert.
Tabelle minimierenTabelle vergrößern
BegriffDefinition
Batterie-BackupSeparate und lokalisierte Akku backup-Funktion direkt verfügbar und von den Cachingmechanismus um Datenverluste zu vermeiden.
Hinweis Dies ist keine unterbrechungsfreie Stromversorgung (USV). Eine USV garantiert keine Aktivitäten schreiben und kann im Zwischenspeichergerät getrennt werden.
CacheZwischengeschaltete Speichermechanismus verwendet physische e/a-Vorgänge zu optimieren und die Leistung verbessert.
Modifizierte SeitenSeite enthält Datenänderungen, die noch nicht in den stabilen Speicher geschrieben werden. Weitere Informationen über Puffer modifizierte Seite finden Sie die "Schreiben von Webseiten (https://technet.microsoft.com/en-us/library/aa337560(v=sql.105).aspx) "Thema unter SQL Server Books Online.
Hinweis Der Inhalt gilt auch für Microsoft SQL Server 2012 und späteren Versionen.
FehlerAlles, was einen unerwarteten Ausfall des SQL Server-Prozesses führen können. Beispiele: Strom Ausfall, Computer zurücksetzen, Speicherfehler, andere Hardwareprobleme, fehlerhafte Sektoren, mit dem Ausfälle, Systemausfälle und usw..
LeerungErzwingen eines stabilen Speicher der Cache-Puffer.
VerriegelungDas Synchronisierungsobjekt verwendet, um physische Konsistenz einer Ressource schützen.
Nichtflüchtiger SpeicherJedes Medium, das über Systemausfälle verfügbar bleibt.
Fixierte SeiteSeite verbleibt in Daten zwischengespeichert und können nicht in einen dauerhaften Speicher geleert werden, bis alle zugeordneten Datensätze in einem stabilen Speicherort gesichert sind.
SpeicherortIdentisch mit den nicht flüchtigen Speicher.
Flüchtiger SpeicherAlle Mittel, die bei Ausfällen nicht erhalten bleiben.

Protokoll Write-Ahead-Logging (WAL)

Das Begriff Protokoll ist eine hervorragende Möglichkeit, WAL beschreiben. Es ist ein bestimmtes und definierter Satz von Implementierungsschritte erforderlich, um sicherzustellen, dass diese Daten gespeichert und ausgetauscht werden, richtig und in einen bekannten Zustand bei einem Ausfall wiederhergestellt werden können. Nur ein Netzwerk zum Austausch von Daten in einer Weise konsistent und geschützte so ein definiertes Protokoll enthält auch beschreiben die WAL das Protokoll, um Daten zu schützen.

Das ARIES-Dokument definiert die WAL wie folgt:
Das Protokoll WAL versichert, dass die Protokolldatensätze, die Änderungen an einigen Daten darstellen bereits im dauerhaften Speicher sein müssen, bevor die geänderten Daten zulässig ist, um die vorherige Version der Daten in den nicht flüchtigen Speicher zu ersetzen. Das heißt, das System darf keine aktualisierte Version der Seite in den nicht flüchtigen Speicher Version der Seite zumindest bis zum Schreiben die rückgängig-Teile der Protokolldatensätze, die beschreiben, die Updates auf der Seite in den stabilen Speicher geschrieben wurden.
Weitere Informationen über die Write-ahead-Logging finden Sie die Write-Ahead-Transaktionsprotokolls (https://technet.microsoft.com/en-us/library/ms186259(v=sql.105).aspx) Thema in der SQL Server-Onlinedokumentation.

SQL Server und der WAL

SQL Server verwendet das WAL-Protokoll. Um sicherzustellen, dass eine Transaktion ordnungsgemäß ausgeführt wird, müssen alle Protokolleinträge, die der Buchung zugeordnet sind, im dauerhaften Speicher gesichert werden.

Um dies zu verdeutlichen, betrachten Sie das folgende bestimmte Beispiel.

Hinweis In diesem Beispiel wird davon ausgegangen Sie, dass kein Index und die betroffene Seite 150 befindet.
BEGIN TRANSACTION
   INSERT INTO tblTest VALUES (1)
COMMIT TRANSACTION
				
Als Nächstes zerlegen des Aktivität in einfache Protokollierung Schritte, wie in der folgenden Tabelle beschrieben.
Tabelle minimierenTabelle vergrößern
AnweisungAusgeführten Aktionen
TRANSAKTIONSBEGINNIn den Protokollbereich Cache geschrieben. Es muss jedoch nicht in einen dauerhaften Speicher leeren, da der SQL Server keine physischen Änderungen vorgenommen hat.
INSERT INTO "tblTest"
  1. Daten Seite 150 werden in SQL Server-Daten-Cache, wenn nicht bereits verfügbar abgerufen.
  2. Die Seite ist verriegelt, fixiert, und fehlerhaft gekennzeichnet, und entsprechende Sperren abgerufen werden.
  3. Ein Datensatz einfügen wird erstellt und auf den Protokollcache hinzugefügt.
  4. Der Seite wird eine neue Zeile hinzugefügt.
  5. Die Verriegelung wird freigegeben.
  6. Die Protokolleinträge, die der Transaktion zugeordnet oder Seite muss nicht zu diesem Zeitpunkt gelöscht werden, da alle Änderungen in einem temporären Speicher verbleiben.
COMMIT DER TRANSAKTION
  1. Ein Commit Protokolldatensatz gebildet wird und müssen die Protokolleinträge, die der Transaktion zugeordnete stabilen Speicher geschrieben werden. Die Buchung wird nicht berücksichtigt, bis die Protokolldatensätze in einen dauerhaften Speicher ordnungsgemäß zugeordnet sind.
  2. Seite 150 Daten im Datencache von SQL Server bleibt und nicht sofort in einen dauerhaften Speicher geleert werden. Wenn die Protokolldatensätze ordnungsgemäß gesichert sind, kann Recovery den Vorgang wiederholen, wenn es notwendig ist.
  3. Transaktionale Sperren werden aufgehoben.
Führen Sie nicht verwechselt werden durch die Begriffe "Sperren" und "Protokollierung". Zwar wichtig, werden Sperren und Protokollierung verschiedene Probleme Wenn Sie die WAL beschäftigen. Im vorherigen Beispiel enthält SQL Server im Allgemeinen die Verriegelung auf 150 für die Zeit zum Durchführen der Änderungen der physischen einfügen auf der Seite nicht der ganzen Zeit der Transaktion erforderlich. Der entsprechenden Sperrtyp wird zum Schutz der Zeile, Bereich, Seite oder Tabelle bei Bedarf eingerichtet. Die SQL Server-Onlinedokumentation Sperren Abschnitte enthalten ausführliche Informationen zu den Lock-Typen finden Sie unter.

Im Beispiel genauer betrachten, können Sie bitten, was geschieht, wenn die Prozesse für verzögertes Schreiben oder CheckPoint ausführen. SQL Server 7 stellt alle entsprechende Leerungen stabilen Speicher für Transaktions-Datensätze, die mit der Seite geändert und fixierte verknüpft sind. Dadurch wird sichergestellt, dass die WAL Protokoll Datenseite stabilen Speicher, bis der zugeordnete Transaktions Protokolleinträge geschrieben wurden nie geschrieben werden kann.

SQL Server und stabilen Speicher

SQL Server verbessert die Protokoll- und Seite-Operationen von Abläufen der Sektor Datenträgergrößen (häufig 4.096 oder 512 Bytes).

Um die ACID-Eigenschaften der Transaktion zu gewährleisten, müssen die SQL Server-Fehlerpunkte berücksichtigt werden. Bei einem Ausfall garantieren viele Laufwerk-Spezifikationen nur eine begrenzte Menge an Sektor Schreibvorgänge. Die meisten Spezifikationen garantieren Abschluss eines Schreibvorgangs Sektor, wenn ein Fehler auftritt.

SQL Server verwendet 8-KB-Seiten und das Protokoll (sofern geleert) auf ein Vielfaches der Sektorgröße. (Die meisten Festplatten verwenden 512 Byte als Standard Sektorgröße.) Im Fall eines Fehlers kann SQL Server Schreibvorgänge größer als ein Sektor berücksichtigt werden durch den Einsatz von Protokoll Parität und Techniken zerrissene schreiben.

Erkennung von zerrissenen Seiten

Diese Option ermöglicht es SQL Server unvollständige e/a-Operationen, die durch Stromausfälle oder Systemausfälle verursacht erkennen. Wenn true, wird ein Bit für jeden Sektor von 512 Byte auf einer Datenbankseite von 8 Kilobyte (KB) gekippt werden soll, sobald die Seite geschrieben wird auf der Festplatte. Wenn ein bit in einem Zustand, wenn die Seite später von SQL Server gelesen wird, wurde die Seite fehlerhaft geschrieben; eine zerrissene Seite wird erkannt. Zerrissene Seiten werden normalerweise während der Wiederherstellung entdeckt, da jede Seite, die fehlerhaft ist wahrscheinlich beim Wiederherstellen gelesen werden.

Obwohl SQL Server Datenbankseiten 8 KB sind, führen Datenträger e/a-Operationen mit einem Sektor von 512 Byte. Aus diesem Grund werden pro Datenbankseite 16 Sektoren geschrieben. Eine zerrissene Seite kann bei einem Systemfehler (z. B. aufgrund eines Stromausfalls) zwischen der Zeit, die das Betriebssystem den ersten 512-Byte-Sektor auf der Festplatte geschrieben und der Beendigung der 8 KB umfassenden e/a-Operation auftreten. Wenn der erste Sektor einer Datenbankseite erfolgreich vor dem Fehler geschrieben ist, wird zwar möglicherweise nicht erfolgreich waren die Datenbankseite auf dem Datenträger als aktualisiert, angezeigt.

Mit Batterie-Backup-Controller Datenträgercaches, Sie können sicherstellen, dass die Daten auf den Datenträger oder nicht erfolgreich geschrieben werden überhaupt geschrieben. Legen Sie in diesem Fall zerrissene Seite Erkennung auf "True" nicht, da dies nicht erforderlich ist.

Hinweis Erkennung von zerrissenen Seiten ist in SQL Server standardmäßig nicht aktiviert. Weitere Informationen finden Sie auf der folgenden MSDN-Website:

ALTER DATABASE SET-Optionen (Transact-SQL) (https://msdn.microsoft.com/en-us/library/bb522682.aspx)

Protokoll Parität

Paritätsprüfung Protokoll ist auf die Erkennung von zerrissenen Seiten sehr ähnlich. Jeden Sektor von 512 Byte enthält Paritäts-Bits. Diese Paritäts-Bits sind immer mit der Protokolldatensatz geschrieben und ausgewertet, wenn der Datensatz abgerufen wird. Durch Schreibvorgänge auf einem 512-Byte-Begrenzung zu erzwingen, kann SQL Server sicherstellen, dass Aktionsstatus Operationen vollständig an den physischen Datenträger geschrieben werden.

SQL Server-Versionen vor 7.0

SQL Server-Versionen hat Protokoll Parität oder zerrissene Bit Erkennung Einrichtungen nicht als 7.0 bereitgestellt. In der Tat können diese Versionen die gleichen Seite Protokoll mehrmals schreiben bis die Protokolldatensätze die Seite 2-KB-Protokoll füllen. Dadurch können Transaktionen offen gelegt, die erfolgreich übermittelt wurden. Wenn die Logseite während eines Fehlers erneut geschrieben wird, ein Sektor mit festgeschriebenen Transaktionen möglicherweise nicht korrekt umgeschrieben erhalten.

Performance-Einbußen

Alle Versionen von SQL Server öffnen die Protokoll- und Datendateien mithilfe der Win32-CreateFile -Funktion. Der DwFlagsAndAttributes -Member enthält die FILE_FLAG_WRITE_THROUGH-Option beim Öffnen von SQL Server.
FILE_FLAG_WRITE_THROUGH
Weist das System durch jeden Zwischencache schreiben und direkt zum Datenträger wechseln. Das System kann immer noch Schreibvorgänge Zwischenspeichern aber leeren kann nicht verzögert werden.

Die Option FILE_FLAG_WRITE_THROUGH stellt sicher, dass die Rückgabe ein Schreibvorgangs einen erfolgreichen Abschluss die Daten korrekt im dauerhaften Speicher gespeichert werden. Dies richtet mit WAL-Protokoll, das die Daten sicherstellt.
Viele Laufwerke (SCSI- und IDE) enthalten integrierte Caches 512 KB, 1 MB oder mehr. Die Laufwerk-Caches beruhen jedoch normalerweise auf einem Kondensator und keine Batterie-Backup-Lösung. Diese Mechanismen können Schreibvorgänge über eine Potenz Radeln oder ähnliche Fehler zeigen nicht garantieren. Sie garantieren nur den Abschluß der Sektor schreiben. Dies ist speziell an, warum die zerrissene schreiben und Protokoll Parität Erkennungstechnologie in SQL Server 7.0 oder höher erstellt wurden. Wenn die Laufwerke in der Größe wachsen, die Caches werden größer und können sie größere Mengen an Daten verfügbar machen, während eines Fehlers.

Viele Hardwarehersteller bieten Batterie-Backup-Disk Controller-Lösungen. Diese Controller-Caches können die Daten im Cache für mehrere Tage verwalten und ermöglichen sogar die Zwischenspeicherung Hardware in einem zweiten Computer platziert werden. Nach Wiederherstellung der Stromzufuhr korrekt, werden leerte Daten vollständig geleert, bevor weitere Datenzugriff zulässig ist. Viele von ihnen ermöglichen einen Prozentsatz der Lese-und Schreib-Cache für eine optimale Leistung hergestellt werden. Enthalten einige große Speicherbereiche für Speicher. Tatsächlich bieten manche Hardwarehersteller stellen für ein besonderes Segment des Marktes, High-End-Batterie-Backup-Festplatten-Cache-Controller Systeme mit 6 GB Cache. Diese können die Leistung erheblich verbessern.

Erweiterte Zwischenspeicherung Implementierungen wird Handle der FILE_FLAG_WRITE_THROUGH anfordern, indem der Cache des Controllers nicht deaktivieren, da sie True bieten können Fähigkeiten für den Fall setzt das System zurück, Stromausfall oder anderen Fehlerpunkt neu geschrieben.

I/o-Übertragungen ohne Verwendung eines Caches können aufgrund von mechanischen Zeit erheblich länger sein, die erforderlich sind, um die Laufwerksköpfe Spin-Preise und andere einschränkenden Faktoren zu verschieben.

Bereich Reihenfolge

Ist eine verbreitete Methode zur Leistungsverbesserung bei e/a-Bestellung. Vermeiden Sie mechanische Bewegungen des Lesekopfs werden Lese-/Schreibanforderungen sortiert eine konsistentere Bewegung des Kopfes abrufen oder Speichern von Daten ermöglicht.

Der Cache kann mehrere Protokolldateien enthalten und Daten-Schreibanforderungen zur gleichen Zeit. WAL-Protokoll und die SQL Server-Implementierung des Protokolls WAL erfordern, schreibt das Protokoll geleert, stabilen Speicher, bevor der Schreibvorgang Seite ausgegeben werden kann. Jedoch kann Verwendung des Caches zurück Erfolg aus eine Schreibanforderung Protokoll ohne die Daten in das jeweilige Laufwerk (die in den stabilen Speicher geschrieben wird,) geschrieben werden. Dies kann zu SQL Server Ausstellen der Seitenanforderung schreiben Daten führen.

Mit der Write Cache-Beteiligung die Daten immer noch gilt im flüchtigen Speicher. Jedoch aus dem Aufruf der Win32-API WriteFilewurde genau wie SQL Server die Aktivität sieht ein erfolgreicher Rückgabecode abgerufen. SQL Server oder jeder Prozess, der derWriteFile-API-Aufruf verwendet, kann Onlythat die Daten ordnungsgemäß dauerhaften Speicher abgerufen hat ermitteln.

Für Diskussion wird davon ausgegangen Sie, dass alle Sektoren der Datenseite sortiert werden, um vor der Sektoren der entsprechenden Protokolldatensätze zu schreiben. Dies verstößt gegen sofort auf das WAL-Protokoll. Der Cache ist eine Datenseite, vor dem die Protokolldatensätze schreiben. Wenn der Cache Batterie-Backup ist, kann ein Ausfall katastrophale Ergebnissen führen.

Wenn Sie die optimale Performance-Faktoren für einen Datenbankserver auswerten, gibt es viele Faktoren zu berücksichtigen. Die wichtigste Klasse ist "Mein System gültige FILE_FLAG_WRITE_THROUGH Funktionen zulässt?"

Hinweis Cache, dass Sie Usingmust sind eine Batterie-Backup-Lösung zu unterstützen. Alle anderen Mechanismen zum Zwischenspeichern bereit sind verdächtig, zur Beschädigung oder Verlust von Daten. SQL Server ist bemüht, die WAL aktivieren FILE_FLAG_WRITE_THROUGH sicherzustellen.

Tests haben gezeigt, dass viele Laufwerkkonfigurationen Schreibcache ohne die entsprechenden batteriegepufferte Sicherung enthalten können. SCSI-, IDE- und EIDE-Laufwerke nutzen des Write-Caches. Sehen Sie weitere Informationen über die Funktionsweise von SSDs zusammen mit SQL Server nach der CSS-SQL Server-Ingenieure Blog-Artikel:

SQL Server und SSDs-lernt RDORR Notes - Teil 1 (http://blogs.msdn.com/b/psssql/archive/2015/01/28/sql-server-and-ssds-rdorr-s-learning-notes-part-1.aspx)

In vielen Konfigurationen ist die einzige Möglichkeit, korrekt deaktiviert den Schreibcache IDE oder EIDE-Laufwerke mithilfe eines bestimmten Herstellers-Dienstprogramms oder mithilfe der Jumper befindet sich auf dem Laufwerk selbst. Um sicherzustellen, dass für das Laufwerk selbst der Schreib-Cache deaktiviert ist, wenden Sie sich an den Hersteller des Laufwerkes.

SCSI-Laufwerke haben auch Write-Caches. Allerdings können diese Caches im Allgemeinen vom Betriebssystem deaktiviert werden. Ist Frage, fordern Sie beim Hersteller mit dem passenden Hilfsprogramm.

Stacking-Cache Schreiben

Schreiben Sie Stapeln von Cache ähnlich dem Sektor zu bestellen. Die folgende Definition stammt direkt aus einer führenden IDE-Laufwerkshersteller Website:
Normalerweise ist dieser Modus aktiv. Schreiben Sie Cachemodus akzeptiert, dass der Host Daten in den Puffer schreiben, bis der Puffer voll ist oder der Host-Transfer abgeschlossen wurde.

Eine Datenträger schreiben Aufgabe beginnt zum Speichern von Daten auf der Festplatte. Host Schreibbefehle weiterhin angenommen und Daten in den Puffer übertragen, bis der Datenpuffer voll ist oder die Aufrufliste Schreibzugriff voll ist. Das Laufwerk kann Schreibbefehle zur Optimierung des Durchsatzes Laufwerk neu anordnen.

Automatische schreiben Neuzuordnung (AWR;)

Eine andere häufige Technik, die verwendet wird, um Daten zu schützen ist fehlerhafte Sektoren beim Datenbearbeitung zu erkennen. Die folgende Erläuterungen stammt aus einer führenden IDE-Laufwerkshersteller Website:
Dieses Feature ist Bestandteil der Schreib-Cache und reduziert das Risiko von Datenverlusten während der verzögerte Schreibvorgänge. Tritt ein Datenträgerfehler während des Brennvorgangs den Datenträger, der Datenträger Aufgabe beendet, und der verdächtige Sektor zugeordnet, auf einen Pool von alternativen Bereichen, die sich am Ende des Laufwerks befinden. Nach der Neuzuweisung werden die Datenträger schreiben Aufgabe weiter, bis er abgeschlossen ist.
Dies ist ein sehr leistungsfähiges Feature, wenn Batterie-Backup für den Cache bereitgestellt wird. Auf diese Weise die entsprechende Änderung nach dem Neustart. Ist es besser, die Fehler der Festplatte erkannt, aber die Datensicherheit des Protokolls WAL müssten wieder Echtzeit durchgeführt wird und nicht verzögert. Innerhalb der WAL-Parameter kann nicht für eine Situation die AWR-Technik berücksichtigen, in der ein Schreibvorgang fehlschlägt, aufgrund eines Fehlers Sektor, aber das Laufwerk ist voll. Das Datenbankmodul muss sofort wissen über den Fehler so, dass die Transaktion ordnungsgemäß abgebrochen werden kann, der Administrator gewarnt werden, und korrigieren Sie Schritte unternommen, um die Daten zu sichern und die Lage der Medien-Fehler zu korrigieren.

Datensicherheit

Es gibt mehrere Sicherheitsvorkehrungen, die ein Datenbankadministrator ergreifen sollten, um die Sicherheit der Daten zu gewährleisten.
  • Es ist immer eine gute Idee, sicherzustellen, dass Ihre backup-Strategie zur Wiederherstellung nach einem Katastrophenfall ausreicht. Externe Speicherung und die sonstigen Vorsichtsmaßnahmen sind geeignet.
  • Die Wiederherstellung der Datenbank in eine sekundäre oder Testdatenbank in regelmäßigen Abständen zu testen.
  • Stellen Sie sicher, dass alle Geräte für das Zwischenspeichern aller Fehler Situationen (Stromausfall, fehlerhafte Sektoren, fehlerhafte Laufwerke, Systemausfälle, Abstürze, Power-Sammlung usw.) verarbeiten können.
  • Stellen Sie sicher, dass Ihr Gerät Zwischenspeichern:
    • Batterie-Backup integriert
    • Neuausstellung können geschrieben werden, beim Einschalten
    • Kann vollständig deaktiviert werden, wenn es erforderlich ist
    • Neuzuordnen von fehlerhaften Sektor in Echtzeit verarbeitet
  • Torn Page Detection aktivieren. (Dies wirkt sich kaum auf die Leistung.)
  • Für einen hot-Swap eines fehlerhaften Festplattenlaufwerks RAID-Laufwerke konfigurieren Sie, wenn es möglich ist.
  • Verwenden Sie neuere Schreibcache-Controller, mit denen Sie mehr Speicherplatz hinzufügen, ohne das Betriebssystem neu zu starten. Dies ist eine ideale Lösung.

Testen der Laufwerke

Um Ihre Daten umfassend zu schützen, sollten Sie sicherstellen, dass alle Daten zwischenspeichern ordnungsgemäß behandelt wird. In vielen Situationen müssen Sie den Schreibcache des Laufwerks deaktivieren.

Hinweis Stellen Sie sicher, dass eine Alternative caching-Mechanismus mehrere Fehlertypen ordnungsgemäß verarbeiten kann.

Microsoft hat auf mehrere SCSI- und IDE-Laufwerken mit dem Dienstprogramm SQLIOSim Tests durchgeführt. Dieses Dienstprogramm wird schwere asynchronen Lese-/Schreibaktivitäten auf einem simulierten Gerät und Protokollmedium simuliert. Test-Leistungsstatistik zeigt die durchschnittliche Schreibvorgänge pro Sekunde zwischen 50 und 70 für ein Laufwerk mit Schreibcache deaktiviert und ein Drehzahlbereich zwischen 5.200 und 7200.

Weitere Informationen über das Dienstprogramm SQLIOSim finden Sie im folgenden Artikel der Microsoft Knowledge Base:
231619  (http://support.microsoft.com/kb/231619/ ) Wie Sie das Dienstprogramm SQLIOSim, um auf einem Datenträgersubsystem SQL Server-Aktivitäten zu simulieren
Viele Computerhersteller bestellen der Laufwerke mit der Schreib-Cache deaktiviert. Tests zeigt jedoch, dass dies möglicherweise nicht immer der Fall. Daher testen Sie stets vollständig.

Daten-devices

In Situationen, aber nicht angemeldet erfordert SQL Server nur die Protokolleinträge gelöscht werden. Wenn nicht protokollierte Vorgänge durchführen zu können, müssen die Datenseiten auch in einen dauerhaften Speicher geleert werden. Es gibt keine einzelne Protokolldatensätze, die Aktionen beim Auftreten eines Fehlers neu zu generieren.

Die Seiten bleibt im Cache, bis der Prozess für verzögertes Schreiben oder CheckPoint in einen dauerhaften Speicher geleert. WAL-Protokoll verwenden, um sicherzustellen, dass die Datensätze korrekt gespeichert werden, wird sichergestellt, dass Recovery eine Datenseite in einen bekannten Zustand wiederherstellen kann.

Dies bedeutet nicht, dass es ratsam-Datendateien auf einem zwischengespeicherten Laufwerk platzieren. Wenn der SQL Server die Datenseiten stabilen Speicher geleert, können die Protokolleinträge aus dem Transaktionsprotokoll abgeschnitten werden. Wenn die Datenseiten auf flüchtige Cache gespeichert sind, kann truncate-Datensätze, die auf eine Seite bei einem Ausfall wiederherstellen verwendet werden. Stellen Sie sicher, dass die Daten- und Protokolldateien Laufwerke richtig dauerhaften Speicher aufnehmen.

Erhöhen der Leistung

Die erste Frage, die auftritt, lautet: "Ich habe eine IDE-Festplatte, die Zwischenspeicherung wurde. Aber wenn ich es deaktiviert, meine Leistung wurde bedeutend geringer als erwartet. Warum?"

Viele IDE-Laufwerke von Microsoft getesteten führen bei 5.200 u/min, und die SCSI-Laufwerke ein von 7.200 u/Min. Wenn Sie den Schreibschutz deaktivieren kann Zwischenspeicherung des IDE-Laufwerks mechanischen Eigenschaften ein Faktor.

Es ist ein sehr klar Bereich um den Leistungsunterschied zu beheben: "Address die Transaktionsrate."

Es gibt viele Systeme online Transaction processing (OLTP), die eine hohe Transaktionsrate erfordern. Verwenden Sie für diese Systeme einen Cache-Controller, der richtig Schreib-Cache zu unterstützen und die Leistungssteigerung bei gleichzeitiger Sicherstellung der Datenintegrität bereitzustellen.

Um erheblich Leistungsänderungen auf einem Laufwerk Zwischenspeichern mit SQL Server auftreten, wurde die Transaktionsrate mit kleinen Transaktionen erhöht.

Testen von Sendungen, die hohe Aktivität der Puffer schreiben, die kleiner als 512 KB oder größer als 2 MB sind, kann zu Leistungseinbußen führen.
Betrachten Sie das folgende Beispiel:
CREATE TABLE tblTest ( iID int IDENTITY(1,1), strData char(10))
GO

SET NOCOUNT ON
GO

INSERT INTO tblTest VALUES ('Test')
WHILE @@IDENTITY < 10000
   INSERT INTO tblTest VALUES ('Test')
				
Im folgenden werden die Beispieltestergebnisse für SQL Server:
SCSI(7200 RPM) 84 Sekunden
SCSI(7200 RPM) 15 Sekunden (Caching-Controller)

IDE(5200 RPM) 14 Sekunden (Laufwerk-Cache aktiviert)
160 IDE(5200 RPM) Sekunden

Umschließen die gesamte Reihe von INSERT-Operationen in einer einzigen Transaktion läuft ungefähr vier Sekunden in allen Konfigurationen.

Der Grund dafür ist die Anzahl der erforderlichen Protokoll geleert. Ohne die Transaktion jeder Einfügen einer Transaktion an und für sich ist und jedes Mal die Protokolleinträge für die Transaktion müssen geleert werden. Jede Bereinigung ist 512 Bytes groß, die erhebliche mechanische Laufwerk Eingriff erforderlich ist.

Wenn eine einzelne Transaktion verwendet wird, die Protokolleinträge für die Buchung können gebündelt und einem einzelnen, größeren schreiben kann verwendet werden, um die abgerufenen Datensätze löschen. Mechanische Intervention wird erheblich verringert.

Warnung Sollten Sie nicht Ihre Transaktionsbereich erhöhen. Langlebige Transaktionen können zu einer übermäßigen und unerwünschte Blockierung führen sowie erhöhten Verwaltungsaufwand. Verwenden Sie die SQL Server-Leistungsindikatoren SQL Server: Datenbanken zum Anzeigen der Transaction Log based Leistungsindikatoren. Insbesondere können Flushed Protokollbytes/Sekunde vielen kleine Transaktionen führt zu hoher Datenträgeraktivität für mechanische angeben.

Sehen Sie sich die Anweisungen für das Protokoll leeren, und prüfen Sie, ob die Anzahl der Leerungen Protokoll reduziert werden kann. Im vorherigen Beispiel wurde eine einzelne Transaktion implementiert. In vielen Szenarios kann dies jedoch zu unerwünschten Sperrverhalten führen. Untersuchen Sie den Entwurf der Buchung. Ähnelt dem folgenden Code können Sie Stapel in das häufige und kleine flush Aktivität reduzieren durchführen:
BEGIN TRAN
GO

INSERT INTO tblTest VALUES ('Test')
WHILE @@IDENTITY < 50
BEGIN
   INSERT INTO tblTest VALUES ('Test')

   if(0 = cast(@@IDENTITY as int) % 10)
   BEGIN
      PRINT 'Commit tran batch'
      COMMIT TRAN
      BEGIN TRAN
   END
END
GO

COMMIT TRAN
GO
				

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Keywords: 
kbhowto kbinfo kbmt KB230785 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 230785  (http://support.microsoft.com/kb/230785/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store