Verbesserung: Mehrere Verbesserungen am SQLIOSim-Hilfsprogramm vornehmen

Zusammenfassung

Diese Verbesserung führt die folgenden Verbesserungen am SQLIOSim-Dienstprogramm ein und behebt Datenintegritätsprobleme, die möglicherweise durch die E/A-Verarbeitung verursacht werden. Weitere Informationen zum SQLIOSim-Hilfsprogramm finden Sie in der Einführung des SQLIOSim-Hilfsprogramms.

Verbesserte Protokollierung

  • Fügt einen neuen Ringpuffer hinzu, um Fehler zu überwachen, damit es unwahrscheinlich ist, dass Fehler im History-Ringpuffer aufgrund eines Rollovers überschrieben werden.
  • Fügt verschiedene Ausgaben hinzu, die "Teilstrichanzahl" und/oder "Datum und Uhrzeit" enthalten, um das Debuggen eines Problems zu vereinfachen.
  • Fügt die Ausgaben von fsutil und Volumeinformationen zur Fehlerdatei hinzu, um den Dateioffset dem Offset auf dem physischen Datenträger zuzuordnen und die E/A-Subsystemablaufverfolgungen einfacher zu filtern.
  • Fügt die Ausgabe für Koordinierte Weltzeit (UTC) und Ortszeit hinzu.
  • Bricht die Ausgabe der Seitenkopfzeile in die Fehlerdatei auf, z. B. PageId, Checksum und Timestamp.
  • Zeigt eine Liste der Seiten des FILE HISTORY Ringpuffers an, um Ringpuffereinträge einfacher zu finden.
  • Zeigt Zeitstempel, Datumszeit, logische CPU und andere Spalten in der Ansicht Sqliosim.log.xml oder ErrorLog.xslt an.
  • Erhöht die Größe der Ringpuffer und reduziert die Häufigkeit des Rollovers.
  • Stellt hexadezimale und dezimale Ausgaben für häufig verwendete Ausgaben wie PageId, Checksum und Timestamp bereit.
  • Aktualisiert das Layout von Sqliosim.log.xml , um das Lesen der XML-Datei in einem Text-Editor zu vereinfachen.
  • Überprüfte Sqliosim.log.xml und ErrorLog.xslt können korrekt in Microsoft Edge angezeigt werden, die internet Explorer (IE)-Modus verwendet.

Seitenkopfzeitstempel

Speichert den GetTickCount64 Wert im Seitenkopf während der Schreibvorgänge. Die Tick-Anzahl ist nützlich, um nachzuverfolgen, wann die Seite geschrieben wird, und die E/A-Subsystemablaufverfolgungen zu filtern.

BNR (Bytes-Not-Read)

Das E/A-Problem bewirkt, dass der Lesevorgang zurückgegeben wird, als ob der Lesevorgang erfolgreich ist, aber der tatsächliche Puffer nicht aktualisiert oder gelesen wird. Das SQLIOSim-Hilfsprogramm empfängt einen erfolgreichen Lesevorgang, schlägt jedoch die Überprüfungen fehl.

Das SQLIOSim-Hilfsprogramm stempelt jetzt die Lesespeicher mithilfe des BNR-Musters, bevor ein Lesevorgang ausgeführt wird. Wenn der Lesevorgang erfolgreich zurückgegeben wird, aber den tatsächlichen Lesevorgang nicht ausführen kann, schlägt die Überprüfung weiterhin fehl. Die Bytes, die jedoch gelesen wurden, zeigen das .BNR-Muster, das auf ein E/A-Subsystemproblem hinweist.

Wiederholen des Schreibvorgangs

Wenn das E/A-Subsystem auf eine Zurücksetzung stößt, was bei Direct-Attached Storage (DAS)-Installationen häufiger vorkommt, können die Schreibvorgangsanforderungen möglicherweise falsch abgeschlossen werden. Das SQLIOSim-Hilfsprogramm garantiert keine Funktionen zum Wiederholen von Schreibvorgängen. In einigen Fällen versucht das SQLIOSim-Hilfsprogramm, die Daten zu lesen und zu überprüfen, die nicht geschrieben werden können.

Das SQLIOSim-Hilfsprogramm wird verbessert, um einen Schreibfehler zu protokollieren und dann einen Erneutschreibvorgang auszuführen.

Erweiterte Sperrung

Die internen Sperrmechanismen und die Seitenschutzaktivität (VirtualProtect) sind optimiert und verbessert, um sicherzustellen, dass ein vom SQLIOSim-Hilfsprogramm gemeldetes Problem nicht durch einen Logikfehler im SQLIOSim-Hilfsprogramm verursacht wird.

Lesewiederholung

Behebt ein Problem, das dazu führt, dass der Wiederholungsversuch des fehlgeschlagenen LDX-Lesevorgangs (Protokollsimulation) fehlschlägt.

Beispiele für die verbesserten Ergebnisse

Das erste Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:

  • UTC-Zeit
  • Hexadezimal und Dezimal
  • Zeitstempel/Tick-Zahl
  • BNR
  • Kopfzeilenerweiterung

Screenshot der erweiterten Ausgabe, die UTC-Zeit, Hexadezimal- und Dezimalzahl, Zeitstempel/Teilstrichanzahl, BNR und Seitenkopferweiterung enthält.

Das zweite Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:

  • Ringpuffer
  • UTC-Zeit
  • Seitenbereichstrennung

Screenshot der erweiterten Ausgabe, die Ringpuffer, UTC-Zeit und Seitenbereichstrennung enthält.

Das dritte Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:

  • Tick-Zählerspalte
  • Logische CPU-Spalte

Screenshot der erweiterten Ausgabe, die die Spalten für tick count und Logical CPU enthält.

Weitere Informationen

Diese Verbesserung ist im folgenden kumulativen Update für SQL Server enthalten:

Kumulatives Update 7 für SQL Server 2022

Informationen zu kumulativen Updates für SQL Server

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsupdates, die sich im vorherigen Build befanden. Es wird empfohlen, den neuesten Build für Ihre Version von SQL Server zu installieren:

Neuestes kumulatives Update für SQL Server 2022

Literaturverzeichnis

Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.