Um die ideale Storage-Konfiguration für Microsoft SQL Server zu ermöglichen, wollen wir zunächst einen genaueren Blick auf die Vorgänge beim Lesen und Schreiben werfen.
Der Schreibprozess innerhalb von Microsoft SQL Server unterteilt sich in drei Stufen, die unterschiedliche Bereiche der Hardware betreffen. Es wird zwischen logischen und physischen Schreibvorgängen unterschieden. Ein logischer Schreibvorgang findet statt, wenn Microsoft SQL Server Daten im Buffer-Pool ändert (INSERT, UPDATE, DELETE). Ein physischer Schreibvorgang wird generiert, wenn diese geänderten Daten vom Buffer-Pool auf den Datenträger geschrieben werden.
Ein Datensatz wird nicht unmittelbar physisch geschrieben, sondern im Buffer-Pool als "modified" gekennzeichnet. Für jeden logischen Schreibvorgang wird im Transaktionsprotokoll ein physikalischer Eintrag generiert. Mit Hilfe eines CHECKPOINT-Befehls werden in regelmäßigen Abständen modifizierte Datenseiten aus dem Buffer-Pool auf den Datenträger geschrieben. Ein CHECKPOINT wartet nicht, bis der Schreibvorgang abgeschlossen ist. Microsoft SQL Server verwendet dazu asynchrone Schreibvorgänge.
Wie bei Schreibvorgängen gibt es auch bei den Lesevorgängen im SQL Server logische und physische Lesevorgänge. Bevor angeforderte Daten von Microsoft SQL Server an eine Anwendung gesendet werden können, müssen diese Daten im Buffer-Pool vorhanden sein. Daten, die unmittelbar aus dem Buffer-Pool gelesen werden, werden als "logische" Lesevorgänge bezeichnet. Sofern Daten noch nicht im Buffer-Pool vorhanden sind, müssen sie – physisch – vom Datenträger in den Buffer-Pool geladen werden.
Der Read-Ahead-Mechanismus erlaubt es SQL Server, bis zu 64 aufeinanderfolgende Seiten (512 KByte) aus einer Datenbankdatei zu lesen. Falls Datenseiten bereits im Buffer-Pool vorhanden sind, wird
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.