NAV 2016 und Azure SQL

NAV 2016 + Azure SQL = Performance?

Macht eine Umstellung einer NAV 2016 Installation auf Azure SQL Sinn? Ich habe in für diesen Beitrag mal einen ganz kurzen Test durchgeführt.

NAV 2016 unterstützt ja nun die Verwendung von Azure SQL als Datenbank. Wie man NAV 2016 auf Azure SQL umstellt, habe ich ja hier beschrieben: https://lee-it.com/nav2016-auf-azure-sql-umstellen/

Auf dem Papier klingt die Idee super, aber wie gut ist die Performance? Letztlich muss die Umstellung auch leistungstechnisch akzeptabel sein.

Benchmark von NAV 2016 und Azure SQL

Wie misst man nun die Leistung von NAV? Natürlich ist am Ende wichtig, was der Benutzer als schnell oder langsam empfindet. Gefühle sind aber schwer messbar und vergleichbar. Auch sollte gemessen werden, was die Fragestellung angemessen beantworten kann. Bei Azure SQL sollten es die Datenbankzugriffe sein.

Daher habe ich einen sehr einfachen und unwissenschaftlichen Test durchgeführt:

Wie lang dauert das Kopieren des CRONUS-Mandanten?

Das Kopieren von Mandanten dürfte nicht so praxisrelevant sein. Dafür ist das einfach zu messen und testet meines Erachtens die Datenbankzugriffe in einer aussagefähigen Art.

Methodik:

Ich habe 2 Virtuelle Maschinen in Azure laufen:

VM 1VM 2
VM-TypD1D1
RAM3.5 GB3.5 GB
NAV-VersionNAV 2015 (8.0.42222.0)NAV 2016 (9.0.42815.0)
SQL-VersionSQL 12.0.2269Azure SQL 13.0.703
SQL-Datenbank-Ortauf C:\ der VM 1auf Azure SQL
Azure SQL-Level-S0 (10 DTUs)

Warum einmal NAV 2015 und einmal NAV 2016? Weil ich die Testmaschinen mit den NAV-Installationen grad so zur Verfügung hatte.

Dann habe ich Report 537 „Copy Company“ so angepasst, dass zu Beginn und Ende die Zeit per CURRENTDATETIME gemessen und am Ende die Differenz ausgegeben wird.

Dann wurde der CRONUS-Mandant jeweils 5mal kopiert und die Zeiten notiert. That’s all!

Ergebnisse:

Kopie Cronus-MandantNAV 2015 (in Sek.)NAV 2016 mit Azure SQL (in Sek.)
161177
248175
351171
461173
556180
Durchschnitt55175

In der niedrigsten SQL-Leistungsebene von Standard (10 DTUs) braucht NAV 2016 mit Azure SQL ca. 3mal so lange, um den CRONUS-Mandanten zu kopieren. Ich hatte das so nicht erwartet.

Dauert das Kopieren in NAV 2016 einfach länger? War mein Setup von VM und Azure SQL nicht optimal? Braucht Azure SQL mehr DTUs für NAV? War mein Test total daneben? Das sind alles legitime Fragen. Vielleicht kann man darauf basierend weitere Tests durchführen.

Fazit:

Einfach mal NAV2016 auf Azure SQL umziehen, weil günstiger und schneller? So einfach scheint es nicht zu sein, zumindest für mich nicht.

Aber wir stehen ja grad am Anfang der Entwicklung. Microsoft will in die Cloud. Also werden sie die Probleme, die der Umstellung Richtung Cloud im Wege stehen, sicherlich angehen.