Performance Counters
Binnen de verschillende service levels is het daarna kiezen voor het aantal DTU’s. Om het aantal DTU’s te bepalen is een DTU calculator ontwikkeld. Deze applicatie maakt gebruik van vier performance counters:
1. Processor – % Processor Time
Deze performance counter wordt gebruikt om het gebruik van de processor te meten per SQL server instantie, maar de DTU’s worden standaard berekend over een database en niet een server dus is het van belang de waarden op database niveau te weten.
De rekensom die daarbij gehanteerd kan worden is 100 DTU’s per core bij 100% gebruik.
2. Logical Disk – Disk Reads/Sec
Het aantal leesacties per seconde is een onderdeel van de lees/schrijf activiteit in de standaard rekeneenheid. Globaal komt dit neer op 2000 IOPS per 250 DTU. Waarbij basis en standaard een minder snel schijfsysteem hebben en dit dus eigenlijk alleen geldt voor de premium tier.
3. Logical Disk – Disk Writes/Sec
Het aantal schrijfacties per seconde is een onderdeel van de lees/schrijf activiteit in de standaard rekeneenheid IOPS. Globaal komt dit neer op 2000 IOPS per 250 DTU. Waarbij basis en standaard een minder snel schijfsysteem hebben en dit dus eigenlijk alleen geldt voor de premium tier.
4, Database – Log Bytes Flushed/Sec
Deze performance counter geeft aan hoe vaak gegevens uit de cache naar het transactielog op schijf worden geschreven. Veel korte transacties leveren veel activiteit op de harde schijf en zorgen dus voor een grote DTU consumptie. De berekening komt neer op 5 MB per 250 DTU in de premium tier. Ook deze activiteit is afhankelijk van de snelheid van de onderliggende opslag en dus in Premium niet te vergelijken met standaard.
Bestaande Database
Voor een bestaande database kan een berekening gemaakt worden over het aantal DTU’s dat gebruikt zal gaan worden door gebruik te maken van de DTU calculator en bovenstaande performance counters.
Als een berekening gemaakt moet worden van het aantal DTU’s voor een nieuwe database of je wilt bepalen hoe een applicatie aan te passen is zodat er minder DTU’s gebruikt gaan worden, dan is het belangrijk te kijken naar de manier waarop SQL Server werkt en hierover zijn een aantal opmerkingen te maken:
- Alle gegevens die opgevraagd worden zullen eerst in het geheugen ingelezen worden, dit geldt ook voor wijzigingen. Dit zijn dus lees activiteiten.
- Een toevoeg actie bevat alleen een insert, een verwijder actie bevat alleen een delete, maar een update actie bevat zowel een insert als een delete. Dit betekent dus dat een update actie twee keer zoveel bytes schrijft als een insert of delete.
- Wanneer een actie op een tabel wordt uitgevoerd waarin veel indexen gebruikt worden wordt ook in de index geschreven.
- Vaste lengte velden (char) verbruiken meer bytes dan dezelfde velden in een variabele lengte (varchar)