SQL Server Trace Flag 1800 uitlijning invoer/uitvoer (I/O) transactielogboekvolume
Summary: De Microsoft SQL Trace Flag 1800 is een instelling waarmee SQL Server 4k I/O-uitlijning voor het volume van het SQL-transactielogboek mogelijk wordt. In dit artikel onderzoeken we de oorzaak van verkeerd uitgelijnde I/O in het transactielogboek en de voordelen van het gebruik van de traceringsvlag 1800. Dit geldt voor storageoplossingen met gevirtualiseerde SQL-oplossingen van Dell en andere leveranciers. ...
Symptoms
Wanneer niet-uitgelijnde I/O optreedt, kan een applicatie een verhoogde schrijflatentie ervaren voor schrijfbewerkingen in transactielogboeken tijdens perioden waarin grote hoeveelheden gegevens in de database worden ingevoegd.
Een gedetailleerd voorbeeld van het detecteren van de mogelijke scheefstand vindt u in deze Broadcom-blog. Maak gebruik van "Process Monitor" aan de SQL-serverzijde of vSphere-tools zoals "vSAN I/O Insight" om het probleem te diagnosticeren.
De impact van een verkeerde I/O-uitlijning is sterk afhankelijk van het workloadpatroon. Over het algemeen is de impact voor grotere sequentiële schrijf-I/O significanter waargenomen.
Een latentievoorbeeld vanuit het perspectief van schrijfprestaties zonder de Trace Flag 1800:

Met de Trace Flag 1800 set:
Cause
vSphere ESXi stelt VMware Virtual Machine Disks (VMDK's) beschikbaar voor het gastbesturingssysteem met een fysieke sectorgrootte van 512 bytes (512n-indeling).
SQL Server gebruikt een geavanceerd mechanisme om de grootte van het I/O-blok in het transactielogboek te berekenen. SQL neemt de fysieke sectorgrootte van de gepresenteerde VMDK waar de transactielogbestanden worden geplaatst om de blokgrootte van het I/O-blok van het transactielogboek uit te lijnen. Dit is anders voor datavolumes die traditioneel gebruikmaken van de grootte van de toewijzingseenheid van het bestandssysteem (NTFS) (door de gebruiker beheerd).
Uitlijning van de I/O-schijf zorgt ervoor dat data naar storagemedia worden geschreven op een manier die overeenkomt met de fysieke sectoren van de schijf. Dit helpt verkeerd uitgelijnde I/O's te voorkomen, wat van invloed kan zijn op de schrijfprestaties.
Opmerking: Dit is niet specifiek voor storageoplossingen. Verschillende oplossingen beheren niet-uitgelijnde I/O op hun eigen manier en vertonen mogelijk niet dezelfde symptomen. Hoe dan ook, het wordt altijd aanbevolen om de IO uit te lijnen volgens de best practices voor storageoplossingen.
Resolution
Door de traceringsvlag 1800 te gebruiken, kunt u ervoor zorgen dat het volume van uw SQL-transactielogboek correct is uitgelijnd met een 4k-grens. Afhankelijk van de grootte van het volumeblok van de onderliggende storageoplossing optimaliseert dit de schrijfprestaties.
Voordat u de traceringsvlag 1800 inschakelt, moet u uw Microsoft SQL-team raadplegen om mogelijke verkeerde uitlijning en configuratierichtlijnen te bevestigen.
Opmerking: Voor Trace Flag 1800 moet de SQL Server-service opnieuw worden opgestart. Het toepassen van de markering met de opdracht "dbcc trace on" van de Database Consistency Checker (DBCC) heeft geen effect.
Additional Information
Microsoft verwijst naar de traceringsvlag 1800 voor beschikbaarheidsgroepen met replicatiegroepen op verschillende schijven. De Trace Flag heeft ook bewezen effectief te zijn in de algemene best practice-prestaties.