Verbesserung: Mehrere Verbesserungen am SQLIOSim-Hilfsprogramm vornehmen
Zusammenfassung
Diese Verbesserung macht die folgenden Verbesserungen am SQLIOSim-Hilfsprogramm und behebt Datenintegritätsprobleme, die möglicherweise durch die E/A-Behandlung 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 nachzuverfolgen, damit es unwahrscheinlich ist, dass Fehler im Verlaufsringpuffer aufgrund des Rollovers ersetzt 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 und
fsutil
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 allgemeine 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 Teilstrichanzahl eignet sich zum Nachverfolgen, wenn die Seite geschrieben und die E/A-Subsystemablaufverfolgungen gefiltert wird.
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 Lesepuffer mithilfe des BNR-Musters, bevor ein Lesevorgang ausgestellt 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 gelesenen Bytes zeigen jedoch die . BNR-Muster, das ein E/A-Subsystemproblem angibt.
Wiederholen des Schreibvorgangs
Wenn das E/A-Subsystem auf eine Zurücksetzung (häufiger bei DIRECT-Attached Storage (DAS)-Installationen stößt, werden die Schreibvorgangsanforderungen möglicherweise falsch abgeschlossen. 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.
Wiederholungsversuche
Behebt ein Problem, das dazu führt, dass beim Wiederholen eines fehlgeschlagenen LDX-Lesevorgangs (Protokollsimulation) ein Fehler auftritt.
Beispiele für die erweiterten Ausgaben
Das erste Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:
- UTC-Zeit
- Hexadezimale und dezimale Dezimalzahl
- Zeitstempel/Teilstrichanzahl
- BNR
- Seitenkopferweiterung
Das zweite Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:
- Ringpuffer
- UTC-Zeit
- Seitenbereichstrennung
Das dritte Beispiel der erweiterten Ausgabe enthält die folgenden Verbesserungen:
- Teilanzahlspalte
- Logische CPU-Spalte
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
References
Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.