Business Central Performance

Business Central Performance Analyse – neue Features zur Überwachung und Optimierung.

Die neuen Möglichkeiten helfen Ihnen, die Leistung von Business Central zu verstehen und zu verbessern. Da sich die Dinge zwischen den veröffentlichten Dynamics Business Central Versionen ändern, ist es wichtig, sich über die neuen Features für die Business Central Performance-Analyse zu informieren.

Je nach Art der Dynamics BC Anwendung (Azure Dienste oder On-Premises) stehen auch hier unterschiedliche Möglichkeiten der Business Central Performance Analyse zur Verfügung.
Eine Business Central On-Premises Installation besteht normalerweise aus den folgenden Komponenten, die zur Verbesserung der Leistung optimiert werden können:

  • Client
  • Web Server
  • Server (Service-Tier)
  • SQL Database
  • SQL Server

Tools und Funktionen zur Leistungsüberwachung der Business Central Performance

Hier ist eine kleine Übersicht der Tools und Funktion bei Leistungsproblemen für sie interessant sein könnten:

  • Azure Application Insights (Business Central 2019, Wave 2 und höher)
    Azure Application Insights ist ein in Azure gehosteter Dienst, der Telemetriedaten zur Analyse und Präsentation sammelt.
    Unabhängig davon, ob Sie Business Central online oder vor Ort ausführen.
    Read more…

  • Telemetriedaten
    Business Central sendet Telemetriedaten für verschiedene Aktivitäten und Vorgänge in Umgebungen und Apps/Erweiterungen.
    (Als AL-Entwickler können Sie benutzerdefinierte Telemetrienachrichten direkt aus AL erstellen, indem Sie die Features Telemetry-Codeeinheit in der Systemanwendung oder die LogMessage-Methode verwenden.)
    Read more…

  • Performance-Toolkit (Business Central 2022, Wave 1 und höher)
    Mit dem Business Central Performance Toolkit können Sie die Leistung zwischen verschiedenen Builds Ihrer Lösung verfolgen und vergleichen.
    Wenn Sie die Umgebungstelemetrie aktiviert haben, erhalten Sie Signale zu Performance, Toolkit-Ausführungen und -Szenarien.
    Read more…

  • Business Central Server-Trace-Ereignisse (Ablaufverfolgungsereignisse)
    Es gibt zwei Ereignisablaufverfolgungsanbieter, die unterschiedliche Ablaufverfolgungsereignisse im Ereignisprotokoll veröffentlichen: Microsoft-DynamicsNAV-Server und Microsoft-DynamicsNAV-Common. Der „Microsoft-DynamicsNAV-Common“ Provider ist ausschließlich für Telemetrie-Ablaufverfolgungsereignisse vorgesehen. Alle anderen Events nutzen den „Microsoft-DynamicsNAV-Server“ Provider.
    Read more…

  • SQL Server Extended Events (Leistungsüberwachungstool)
    SQL Server Extended Events ist ein Leistungsüberwachungstool, das dabei hilft, die Aktionen der Datenbank-Engine zu sammeln und zu überwachen, um Probleme in SQL Server zu diagnostizieren.
    Erweiterte SQL Server-Ereignisse wirken sich nicht wie der Profiler auf die Leistung des SQL Servers aus und bieten außerdem zahlreiche Ereignisse, die bei der Fehlerbehebung bei der Abfrageleistung und anderen Problemen helfen. Um Deadlock-Probleme zu lösen, kann dies die erste Option sein, und unserer Meinung nach muss es auch die erste Option sein. Auch Busissnes Central nutzt die Extended Events, um Deadlock-Probleme aufzuzeichnen.
    Read more…

Wir nutzen einige Möglichkeiten in Kombination der Leistungsüberwachung mit unserem Analysetool V8 Search XE, da wir so allen Kunden bei Problemen wie Deadlocks, Tabellensperren und allgemein schlechter Performance helfen können. Bei der Business Central Ablaufverfolgungsereignis Methode zum Beispiel ist es egal, ob sie ein Dynamics NAV oder eine Business Central nutzen.

Business Central Server-Trace-Ereignisse

Für jedes „Trace Event“ gibt es mehrere Arten von Ablaufverfolgungsereignissen, darunter: Windows-Ereignisanzeige, SQL-Ablaufverfolgungen, Dienstaufrufe, AL-Funktionsaufrufe und Telemetrie.
Aktivieren sie die Ereignisprotokollierung im Windows-Anwendungsprotokoll (EnableApplicationChannelLog). Standardmäßig ist diese Funktion aktiviert.

Business Central Performance - Windows-Anwendungsprotokoll aktivieren.

Viele von ihnen denken jetzt: Wir schauen oft in das Windows-Protokoll. Aber das hilft uns nicht wirklich. Stimmt!

Wahrscheinlich sehen oft folgende Informationen im Windows-Ereignisprotokoll.

Business Central Tabellensperren live sehen

Business Central Tabellensperren „live“ sehen – das ist seit Jahren im wieder das Thema in der Performance Optimierung von Microsoft Dynamics Business Central. Seit der Version 18 von Dynamics Business Central hat Microsoft in diesem Bereich neue Informationen über den Verursacher von Tabellensperren bereitgestellt. Diese neuen Informationen ermöglichen es Administrator und Systembetreuern, die richtigen Schritte einzuleiten, um den Kollegen der AL Programmierung im eigenen Haus oder bei den Partnern die Stelle im AL-Code zuliefern, die Probleme verursacht.

V8 Search XE (Version 4) bietet nun allen Dynamics Business Central der Version 18 oder höher die Möglichkeit Tabellensperren „live“ zusehen. Die Möglichkeit, Sperren in Tabellen zu identifizieren, ist auch für ältere Dynamics NAV / Business Central möglich. Allerdings sind die Informationen über den Verursacher der Tabellensperre abzurufen, nur über einen erweiterten Workflow in V8 Search XE möglich.

Business Central Tabellensperren „Live“ sehen – welche Informationen liefern die neuen Dynamics Business Central Versionen?

Die Datenbanksperre steuert den gleichzeitigen Zugriff mehrerer Benutzer auf dieselben Daten. Um eine Transaktion gegen andere Transaktionen zu schützen, die dieselben Daten ändern, sperrt die erste Transaktion die Daten. Die Sperre bleibt bestehen, bis die Transaktion abgeschlossen ist.

Benutzer können für den Abschluss von Transaktionen mit den gesperrten Daten gesperrt werden. Sie erhalten in der Regel eine Meldung, die den Sperrzustand anzeigt.

Was sieht der Administrator oder Systembetreuer?

Wahrscheinlich benutzen die meisten IT Abteilungen ein Monitoring Tool, um möglich Engpässe oder Bottlenecks auf dem SQL Server in Verbindung mit Business Central zu identifizieren.
So zeigt Ihnen zum Beispiel der Aktivitätsmonitor im SQL Server Management Studio so eine Tabellensperre an.

Mit diesen Informationen kann kein Programmierer für Dynamics Business Central etwas anfangen. Aber wie soll man solche Probleme lösen?

Was sieht der Administrator oder Systembetreuer mit V8 Search XE?

Sie erhalten die gleichen Informationen wie im Aktivitätsmonitor, wenn eine Tabellensperre auftritt. Sehen zum Beispiel in unserem Beispiel, das SPID 54 von SPID 55 geblockt wird. Sie die den Waitype und die Wairesource des SQL Server. Die Art der in Informationen werden ihnen von fast allen Monitoring Tools als Basisinformation zur Verfügung gestellt und viele, viele weitere Details zum SQL Server verhalten zur Transaktion.


Was Ihnen aber die SQL Server Monitoring Tools nicht liefern, sind die Informationen zur Transaktion aus der Dynamics Server. Und hier kommen die neuen Informationen der Version 18 oder höher von Dynamics Business Central zum Vorschein. Der V8 Search XE Performance Analyzer bietet die Möglichkeit, diese Informationen „live“ abzurufen!


Sie haben nun endlich die Verbindung zur Datenbanksperre auf dem SQL-Server und in Echtzeit, welches Dynamics AL Objekt das Problem verursacht hat.

Sie sehen in diesen Informationen die SPID die im SQL-Server das „Blocking“ verursacht hat. Mit diesen Informationen sollten Administratoren / Systembetreuer und die AL Programmierer gemeinsam viele Probleme der Dynamics Benutzer lösen können und somit ein Performance optimiertes Dynamics Business Central System dem Unternehmen zur Verfügung stellen.

V8 Search XE bietet eine viel Zahl von integrierten Performance Tools für SQL Server und Dynamics Business Central / NAV. Mit V8 Search XE werden sie ihr Dynamics Business Central System zur Performance höchst Leistung optimieren.

Gerne beantworten wir Ihnen persönlich weitergehende Fragen zu diesem Thema.
Ihr dynamicsproject.com Team

SQL-Server-Abfrageoptimierung für Dynamics ERP

SQL-Server-Abfrageoptimierung für Dynamics ERP

SQL-Server-Abfrageoptimierung für Dynamics ERP


1. Warum sollte man eine SQL-Server-Abfrageoptimierung für Dynamics ERP Systeme wie Business Central oder NAV durchführen?

In den letzten Jahren hat man unglaubliche Verbesserungen in vielen Bereichen der Datenbank Server gesehen:

  • Datenbankoptimierer verbessern sich ständig und finden Wege, um Abfragen anpassungsfähiger zu machen und Bereiche mit schlechter Optimierung zu überwinden.
  • Die Speichergeschwindigkeit hat sich aufgrund der Fortschritte sowohl bei der Speichertechnologie als auch bei der Netzwerkbandbreite massiv erhöht, CPUs sind viel schneller geworden und die Preise für Speicher sind dramatisch gesunken.

Dennoch gibt es immer noch Fachleute (wie uns), die ihren Lebensunterhalt mit der Abstimmung von Abfragen verdienen und andere darin schulen, Abfragen zu optimieren. Dieser Prozess beinhaltet das Auffinden bestimmter langsamer Abfragen (Long Durations), die für die Leistung von Dynamics Business Central oder NAV entscheidend sind. Diese „langsamen SQL-Abfragen“ können durch das Vornehmen strategischer Änderungen, sei es im Code, der Datenbankstruktur, der NAV Server Instanz Konfiguration oder etwas anderem entstehen. Optimierungen sind oft notwendig, um sicherzustellen, dass diese spezifischen SQL-Abfragen konsistent mit einer bestimmten Geschwindigkeit ausgeführt werden oder einem geforderten Leistungsstandard entsprechen.
Aber warum also SQL-Server-Abfrageoptimierung trotz der ganzen Verbesserungen?

Ganz einfach:

  • Auch die Datenmengen nehmen dramatisch zu
  • Auch die Erwartungen der Kunden/Benutzer an Leistung/Geschwindigkeit von Anwendungen wie Dynamics Business Central sind gestiegen
  • Kunden/Benutzer erwarten, dass sie jetzt nicht auf Ergebnisse warten müssen – sie möchten sofort den aktuellen Status sehen

2. Wer sollte die SQL-Abfrageoptimierung durchführen?

Die SQL-Abfrageoptimierung erfolgt durch:

  • Datenbankadministratoren
  • C/AL oder AL Entwickler, die sich auf Performance oder speziell auf Datenbanken spezialisiert haben

Full-Stack-Entwickler für AL und C/AL führen im Allgemeinen keine Abfrageoptimierung durch, es sei denn, sie haben ein bestimmtes Interesse oder Berufserfahrung. Dies ist eher eine Spezialisierung als eine „schnelle Lernaufgabe“, daher haben die meisten Full-Stack-Entwickler einfach keine Zeit und müssen eine spezialisiertere Person beauftragen, die ihnen hilft. Teams, die keinen leicht verfügbaren Spezialisten haben, können in regelmäßigen Abständen Berater wie uns das DynamicsProject Team hinzuziehen, die dabei helfen.

Es gibt auch viele Datenbankadministratoren, die SQL-Datenbanken verwalten, bei denen nur „grundlegende“ Verfügbarkeit und Leistung erforderlich sind. Diese SQL-Datenbanken werden von kostenbewussten Unternehmen verwendet, die nicht jede Datenbank wie ein „Rennauto“ tunen müssen: Die meisten ihrer SQL-Datenbanken werden von internen Benutzern verwendet, die es gewohnt sind, die Dynamics ERP Leistung und Geschwindigkeit mäßig ist.

3. Welche Fähigkeiten sind bei der SQL-Abfrageoptimierung erforderlich?

Die meisten von uns sind kein Zauberer bei TSQL, aber viele DBAs sind ziemlich gut im Abfragetuning geworden (z.B. durch unsere V8 Performance Workshops).

Eine sehr unwissenschaftliche Schätzung, welche Fähigkeiten jemanden bei der Abfrageoptimierung ausmachen:

40% – die Zeit, das Interesse und die Ressourcen (einschließlich eines Netzwerks von Personen, die gefragt werden müssen), um ein umfassendes Profil von „Leistungsinformationen“ zu erstellen – dies sind Muster, die sich nicht gut optimieren lassen, Randbedingungen, bei denen die Leistung schlecht wird, Verständnis von Trace Flags und Konfiguration auf TSQL.

30% – Interesse und Fähigkeit zu erfahren, wie die Datenbank-Engine Abfragen mithilfe von Indizes und anderen Ressourcen optimiert und verarbeitet und was sich auf die Parallelität auswirkt, wenn mehrere Abfragen gleichzeitig gegen eine Live-Datenbank ausgeführt werden

10% – Verständnis der TSQL-Sprache und verschiedene Möglichkeiten zum Umschreiben einer Abfrage in Verbindung mit der AL oder C/AL Programmierung von Dynamics, um eine bestimmte Ergebnismenge zu erzeugen. Diese Funktioniert aller Dings oft nur mit Datenbank-DevOps.

Was ist Datenbank-DevOps?
Beginnen wir mit der Definition von DevOps. DevOps ist eine Reihe von Praktiken, die Softwareentwicklung (dev!) und IT-Betrieb (ops!) mit dem Ziel kombinieren, mehr Funktionen, Fixes und Updates schneller bereitzustellen, in Übereinstimmung mit den Geschäftszielen. Database DevOps wendet dieselben Prinzipien an und stellt sicher, dass der AL oder C/AL Datenbankcode im selben Prozess wie der Entwicklungscode enthalten ist.

Database DevOps hilft Teams, den Anwendungsentwicklungs- und -freigabeprozess weiter zu identifizieren und zu rationalisieren, indem ein bekannter Engpass behoben wird: Änderungen des AL oder C/AL Dynamics Source Codes.

4. SQL-Abfrageoptimierungstools und ihre Zusammenarbeit
4.1 Ausführungspläne

Wie die SQL-Abfrage aus Dynamics Business Central hinter den Kulissen ausgeführt wird.

  • „Geschätzte“ Ausführungspläne zeigen die Entscheidungen, die der Optimierer zum Ausführen der Abfrage getroffen hat, einschließlich der geschätzten Anzahl von Zeilen, die durch die verschiedenen Teile des Plans fließen werden
  • „Tatsächliche“ Ausführungspläne sind geschätzte Pläne, die mit Laufzeitstatistiken aktualisiert werden, z. B. wie viele Zeilen den Plan durchlaufen haben. Wenn der Plan „adaptiv“ ist, enthält er einige Informationen darüber, welche Optionen gewählt wurden
4.2 Abfragespeicher

SQL-Server 2016+, alle Editionen

  • Diese Funktion verfolgt Ausführungspläne und aggregierte Laufzeit Metriken (Dauer, CPU-Auslastung) zusammen mit aggregierten Wartestatistiken
  • Dies hat auch die Möglichkeit, Pläne „einzufrieren“
  • Abfragespeicherinformationen werden mit der Datenbank selbst wiederhergestellt, sodass sie bei Bedarf zwischen Umgebungen gemeinsam genutzt werden können.
4.3 Dynamische Verwaltungsansichten und Leistungsindikatoren (DMV)
  • Diese helfen, die Engpässe der gesamten Instanz während der langsamen Leistung zu verstehen
  • Beispiel: Gesamtwartestatistik für die Instanz und Metriken zur Speicherlatenz während der Zeit, in der die Abfragen schlecht ausgeführt wurden, können helfen zu erklären, ob die Abfrage wirklich optimiert werden muss
  • Bei der Abfrageoptimierung sind häufig Rückrufe für die „Workload-Optimierung“ erforderlich.
  • SQL-Ablaufverfolgung und erweiterte Ereignisablaufverfolgungen (bei erweiterten Ereignissen handelt es sich um ein Lightweight-System zur Leistungsüberwachung, um Daten zu sammeln und bilden die Grundlage von V8 Search XE)
  • Der „Alte“ SQL Profiler ist für die Abfrageoptimierung im „live“ Betrieb schwierig zu verwenden, da sie Ihre Arbeitslast leicht verlangsamen und Leistungsprobleme beim Tracing verursachen.
  • Ausführungspläne (Filtern hilft in diesem Fall nicht, die Pläne werden alle untersucht / gesammelt und der Filter wird zu spät angewendet)
  • Wartestatistiken (Filtern kann hier helfen, aber die gesammelten Daten sind so massiv, dass man sehr vorsichtig sein muss – und auch das Sortieren und Abfragen der gesammelten Daten ist recht umständlich
  • „Business Central Server Trace Events“ Es gibt zwei Ereignis-Trace-Anbieter, die verschiedene Trace-Ereignisse im Ereignisprotokoll veröffentlichen: Microsoft-DynamicsNAV-Server und Microsoft-DynamicsNAV-Common. Der Microsoft-DynamicsNAV-Common-Anbieter ist ausschließlich für Telemetrie-Trace-Ereignisse vorgesehen. Alle anderen Ereignisse verwenden Microsoft-Dynamics NAV-Server. In der Regel müssen Sie den Ereignis-Trace-Anbieter in dem von Ihnen verwendeten Überwachungstool (z.B. V8 Search XE) angeben.
  • „SQL-Trace-Ereignisse“ verfolgen einen bestimmten Satz von SQL-Anweisungen, die von der Business Central Server-Instanz gegen die Business Central-Datenbank auf SQL-Server ausgeführt werden.

5. Schwierige Probleme – Streit um Ressourcen

Es ist schwer vorherzusagen, wie SQL-Abfragen in einem Live-Workload miteinander interagieren

Gemeinsam genutzte Ressourcen:
  • Arbeitsspeicher für Abfragen – eine bestimmte Menge an Arbeitsspeicher muss für Sortierungen/Verknüpfungen/Verschieben von Daten in einer Abfrage zugewiesen werden. Viele gleichzeitig ausgeführte Abfragen, die viel Arbeitsspeicher benötigen, können dabei zu Problemen führen. (Manchmal gehen die Abfragen davon aus, dass sie viel mehr von diesem Speicher benötigen, als sie benötigen, und er muss optimiert werden – dies wird den Benutzern außerhalb eines Live-Workloads wahrscheinlich nicht bewusst sein)
  • Die Anzahl der Abfragen, die Änderungen vornehmen, und der Ansatz zum Sperren sind außerhalb einer Live-Workload schwer vorherzusagen (Änderungen in Abfrageplänen können zu Blockierungen führen, wenn sie vorher nicht vorhanden waren)
Änderungen der Serverressourcen – sogar Verbesserungen – können zu Blockierungen führen, wenn sie vorher nicht vorhanden waren
  • Beispiel: Der Wechsel zu einem neuen Server mit mehr Arbeitsspeicher und schnelleren CPUs führte zu einer Zunahme der Wartezeiten für Sperren, da die Wartezeiten im Speicher verringert und die Ausführung von Abfragen beschleunigt wurde.

6. Ist eine Prüfung in der „Live“ SQL-Datenbank erforderlich?

Ja. Ein Beispiel dafür ist Parallelität.

Das Optimieren des Parallelitätsgrads für eine Workload und für bestimmte Abfragen in dieser Workload ist in der Regel ziemlich hardwarespezifisch, und Sie benötigen eine Live-Umgebung.

Workload- „Replays“ sind im Toolkit von SQL-Servern verfügbar, aber sie sind:

  • Nur Wiederholungen – Sie können die Aktivität nicht sinnvoll „verstärken“ (das 10-malige Löschen derselben Zeilen ist nicht dasselbe wie das 10-malige Löschen verschiedener Zeilen)
  • Zeitaufwändig einzurichten

7. Automatisierte SQL-Server-Abfrageoptimierung: Verlauf und Entwicklung
7.1 Automatisierte Plankorrektur

SQL-Server 2017+, Enterprise Edition

  • Aufgebaut auf dem Abfragespeicher
  • Erkennt SQL Abfragen, die manchmal schnell und manchmal langsam sind
  • Kann Änderungen nur empfehlen, wenn gewünscht und eingerichtet
  • Kann Pläne einfrieren, testen, ob es hilft und entsprechend reagieren (Das Einfrieren ist als vorübergehende Lösung gedacht – es wird empfohlen, dass ein Benutzer die Abfrage zur Optimierung als längerfristige Lösung auswertet)
  • Sehr gute Funktion zur Identifizierung von Parameter-Sniffing
7.2 Intelligente Abfrageverarbeitung
  • „Intelligente Abfrageverarbeitung“ (Intelligent Query Processing, IQP) wurden in den letzten Versionen von SQL-Server veröffentlicht
  • Mehrere dieser Features beheben häufige Probleme bei der Abfrageoptimierung in SQL-Server
  • Mehr Informationen: Intelligente Abfrageverarbeitung in SQL-Datenbanken

8. Häufige Fehler und Fallstricke bei der SQL-Server-Abfrageoptimierung
  • Fehlende Verbindung zwischen DBAs und Dynamics Entwicklungsteams
  • Mangelnde Kenntnis der Ausführungspläne im Team
  • Mangelndes Verständnis von SQL-Server-Isolationsstufen und „optimistischen“ Optionen
  • Mangelnde Kenntnis wie von Dynamics AL oder C/AL Programmierung auf dem SQL Server umgesetzt wird

Gerne beantworten wir Ihnen persönlich weitergehende Fragen zu diesem Thema.
Ihr dynamicsproject.com Team

Dynamics 365 BC SQL Server-Leistung

Dynamics 365 BC SQL Server-Leistung

Dynamics 365 BC SQL Server-Leistung – worauf sollten Sie bei einem Überwachungstool achten? Was ist erforderlich?

Ein Überwachungstool / Analyse-Tool wie z.B. V8 Search XE muss Ihnen ein Verständnis der häufig komplexen Leistungsmuster vermitteln, die SQL Datenbanken unter Last aufweisen. Damit Sie vorhersagen können, wie Sie mit der Erweiterung bzw. Vergrößerung der Datenbank umgehen werden. Es muss uns auch helfen, die Symptome von Stress zu erkennen und zu handeln, bevor sie zu Problemen werden. Das Tool sollte aufzeigen, was in Ihrer Datenbank passiert ist, als ein zeitweise auftretendes Problem auftrat und die Dynamics 365 BC SQL Server-Leistung spürbar beeinflusste.

Es gibt drei gute Gründe, die Leistung einer Datenbank zu überwachen und zu optimieren:

  • Chronische Leistungsprobleme: Wenn eine Datenbank langsam und konsistent reagiert, wird oft davon ausgegangen, dass Ihr System mehr Ressourcen oder eine andere Technologie benötigen. Der Kauf von „mehr Metall“ oder die Erhöhung Ihrer Cloud-Ressourcen ist teuer, wenn die vollen Kosten berücksichtigt werden. Ebenso steigen die Kosten einer neuen Technologie schnell an, sobald Lizenzen und die Schulung der Mitarbeiter berücksichtigt werden. Solche Investitionen mögen als logische Lösung erscheinen, aber ohne die Ursache für das langsame Verhalten von Dynamics 365 BC/ NAV untersuchen zu können, sind sie sinnlos. Sie müssen wissen, warum Ihre Dynamics Lösung langsam läuft und was das Problem verursacht, bevor Sie davon ausgehen können, dass ein Upgrade die Antwort ist. Das Beheben einiger unerwünschter Abfragen kann zu einer überraschend schnellen Verjüngung einer müden Datenbank führen und diese unnötigen Kosten und Verzögerungen vermeiden.

  • Zeitweise auftretende Leistungsprobleme: Wenn eine Dynamics 365 Business Central SQL Server Datenbank ein zeitweiliges Problem aufweist, ist es einfacher zu lösen, wenn Ihnen Daten zur Verfügung stehen, wann und unter welchen Umständen dies geschieht. Wenn Sie eine historische Aufzeichnung der zuverlässigsten Leistungsindikatoren oder Metriken haben, können Sie die Aktivitäten über verschiedene Zeiträume hinweg vergleichen, und es ist dann viel einfacher, das Problem schneller zu finden und zu beheben.

  • Akute Leistungsprobleme: Wenn Sie die Leistung Ihrer Dynamics SQL Datenbank nicht überwachen, verlassen Sie sich tatsächlich darauf, dass sich Ihre Benutzer beschweren, wenn die Datenbank zu langsam ist, um ihre Arbeit zu erledigen. Dies ist keine gute Idee, da nur wenige Unternehmen etwas tolerieren, das Ihr Geschäft behindert.

Mit der Verantwortung Dynamics 365 BC/NAV Server ist es möglich, SQL Server-eigenen Tools zu verwenden, um die Diagnosedaten zu erfassen, die Sie benötigen, um besorgniserregende Änderungen oder Trends zu erkennen. Sofern die Person, die für die erste Beantwortung von Leistungsproblemen verantwortlich ist, nicht weiß, wo sie nachforschen muss, ist die in SQL Server verfügbare Informationsmenge kaum mehr als eine Ablenkung. Die Schwierigkeit besteht häufig darin, die für Ihre Systemlandschaft notwendigen Informationen aus den zahlreichen Server-Metriken zu finden, die auf Ressourcenkonflikte, Fehlerbedingungen und Engpässe auf dem SQL Server hinweisen können.

Infolgedessen sollten Sie ein Überwachungstool einsetzen, dass Sie darauf hinweist, dass mit der SQL Server-Datenbanken etwas nicht richtig ist und gerade genug Informationen mit der Warnung bereitstellt. Sobald die Art des Problems hinreichend verstanden ist, können Sie bei Bedarf verschiedene zusätzliche Leistungsmetriken verwenden, die im SQL Server und den Dynamics NAV Servern verfügbar sind.

Anzeichen für mögliche Leistungsprobleme

Es gibt verschiedene Trends, die Sie vor Leistungsproblemen warnen. Zu den wichtigeren gehören:

  • Die aktuelle Leistung ist ungewöhnlich langsam.
  • Der Server steht unter hohem Prozessordruck.
  • Es gibt mehr Vorfälle als üblich mit Blockierungen, Deadlocks und lang laufenden Abfragen
  • Es gibt eine zunehmende Anzahl von Wartezeiten bestimmter Arten
  • Die Leistung verschlechtert sich erheblich, als man mit zunehmender Datenbankgröße erwarten würde
  • Der Speicherbedarf und der für die Protokollierung erforderliche Speicherplatz nehmen rapide zu

Diagnosedaten sammeln

Sowohl Windows Server, Dynamics NAV Server als auch SQL Server verfügen über integrierte Leistungstools, und wir haben mit V8 Search XE ein Tool, um Probleme mit der Leistung zu beheben. Einige dieser Tools bieten allgemeine Metriken, während andere sehr spezifische Bedingungen überprüfen sollen, die eine Theorie darüber bestätigen können, was ein Problem verursacht. Ist die Ursache für eine lang laufende Abfrage (Long Duration) beispielsweise ein fehlender Index, eine schlechte Abfragelogik wie ein „Non-SARGable-Abfrage-Filter“? Sie können erweiterte Ereignisse (XEvents), Perfmon, DMVs (Dynamic Management Views) und Traces verwenden, um diese Daten bereitzustellen.

Wenn Leistungsprobleme bestehen bleiben, nachdem die Datenbankadministratoren auf das Problem aufmerksam gemacht wurden, können Sie mit V8 Search XE wahrscheinlich die Hauptursache finden. Wenn das Problem jedoch vorübergehend und zeitweise auftritt, kann es sehr schwierig werden, da die von Ihnen benötigten Details verschwunden sind. Bis das Problem gemeldet wird, ist es zu spät und sie müssen warten, bis es erneut Auftritt.

Datenbankadministratoren benötigen ein Tool wie V8 Search XE, das die erforderlichen Diagnosedaten kontinuierlich in regelmäßigen Abständen sammelt, damit sie Probleme schnell beheben können, unabhängig davon, wann sie auftreten. Ein effektives Überwachungssystem muss auf jedem SQL Server funktionieren, um alle Punkte in der gesamten Serverlandschaft zu verbinden.

Anforderungen an die Leistungsüberwachung

Es gibt eine Reihe von Möglichkeiten, wie Sie mit Ihrem Überwachungstool Leistungsprobleme anhand der gesammelten Diagnosedaten identifizieren und diagnostizieren können. Hier können Sie nur einige der offensichtlicheren Möglichkeiten behandeln.

Verbinden Sie Server-Stressbedingungen schnell mit ihrer Ursache

Angenommen, Dynamics Benutzer melden eine langsame Datenbankleistung, und Ihr Überwachungstool zeigt an, dass die CPU-Auslastung „hoch“ ist. Bedeutet dies, dass „Prozessordruck“ das Leistungsproblem verursacht? Es hängt davon ab, ob! Wenn der Server ausgelastet ist, sollten Ihre Prozessoren hart arbeiten, um alle Anfragen der Benutzer zu verarbeiten! Ein gutes Überwachungstool hilft Ihnen dabei, diese eine Metrik schnell mit anderen zu korrelieren, die den CPU-Druck bestätigen (oder ausschließen) und mit den spezifischen Abfragen, die zum Zeitpunkt des Problems ausgeführt werden.

Ist die CPU nur deshalb ausgelastet, weil der Server ausgelastet ist? Ist die Anzahl der Verbindungen oder die Anzahl der Benutzeranforderungen pro Sekunde höher als normal? Sie können nur sicher wissen, ob Ihr Überwachungstool für jede dieser Metriken eine Basislinie hat. Mit anderen Worten, wenn Sie damit schnell aktuelle Werte mit Werten für dieselben Metriken gestern zur gleichen Zeit oder zur gleichen Zeit in den letzten Tagen oder Wochen vergleichen können.

Geht die CPU-Erhöhung mit einer signifikanten Verlängerung der Zeit einher, die Benutzerprozesse nur damit verbringen, auf die CPU zu warten? Diese häufigen Signalwartezeiten können zusammen mit einer hohen CPU-Auslastung auf einen CPU-Druck hinweisen. Auch hier benötigen Sie eine Basislinie für Signalwartezeiten, um dies festzustellen, und Ihr Überwachungstool sollte es sehr einfach machen, bei Bedarf eine Metrik zum Sammeln dieser Daten hinzuzufügen.

Ihre Leistungsmetrik-Baselines zeigen möglicherweise, dass der CPU-Druck in der letzten Woche eines jeden Monats normal ist. An diesem Punkt der Leistungsuntersuchung möchten Sie den Server-Stresszustand, ob hohe CPU-, Speicher- oder I/O-Auslastung (oder alle drei), direkt mit lang laufenden Abfragen in diesem Zeitraum verbinden. Eine übermäßige CPU-Auslastung wird häufig durch lang andauernde, komplexe Abfragen verursacht, die einfach viel Rechenleistung erfordern. Schlecht abgestimmte T-SQL-Anweisungen und schlecht gestaltete Indizes können zu einer hohen Belastung aller Ressourcen führen.

Gibt es Möglichkeiten, den Druck durch die Optimierung dieser Abfragen oder der Datenbankindizes zu verringern? Wenn nicht, können Sie Schritte unternehmen, um die CPU-Zuordnung für diesen Zeitraum zu optimieren. Wenn es sich beispielsweise um Cloud-basierte Server handelt, können Sie diese elastisch erweitern, um mehr Prozessoren zu verwenden, und so die Leistung Ihrer wichtigen Berichtsabfragen optimieren?

Ohne die Tools, mit denen festgestellt werden kann, ob die Engpässe durch schlecht geschriebene Abfragen oder fehlende Indizes verursacht werden, besteht die Versuchung, die Anzahl der Kerne zu erhöhen. Mithilfe eines Überwachungstools kann häufig eine kleine Anzahl von Abfragen gefunden werden, die die meisten Engpässe verursachen. Sobald diese Abfragen identifiziert sind, müssen nur noch die Abfragen und Indizes optimiert werden.

Server-Wartezeiten analysieren

Warten Sie im Statistikbereich mit dem leistungsstarken Tool, um den größten Engpass auf Ihren SQL-Servern festzustellen. Jedes Mal, wenn eine Anforderung zum Warten gezwungen wird, zeichnet SQL Server die Länge der Wartezeit und die Ursache der Wartezeit (den Wartetyp) auf, die im Allgemeinen die Ressource angibt, auf die die Anforderung gewartet hat, die sie jedoch nicht abrufen konnte. Wartezeiten können beispielsweise mit Parallelität, I/O Langsamkeit oder Sperrung zusammenhängen. Dies wird als Gesamtaggregatwerte angegeben, die seit dem letzten Neustart des Servers erfasst wurden. DBAs überprüfen normalerweise Wartezeiten, um die Belastungen auf dem Server zu verstehen.

Auch hier bedeutet das Wissen, dass eine bestimmte Wartezeitmetrik „hoch“ ist, kein Problem für sich. Ihr Überwachungstool muss Ihnen dabei helfen, diese mit anderen Metriken zu korrelieren und diese Wartezeiten zu analysieren, um die tatsächlichen Abfragen zu finden, die von ihnen betroffen sind:

Ein gutes Überwachungstool meldet auch die häufigsten Wartezeiten über einen bestimmten Zeitraum, sodass der DBA Trends oder Ausreißer leicht erkennen kann.

Nehmen wir an, Sie beobachten hohe CXPACKET Wartezeiten. Ist das ein Problem? Diese Art des Wartens tritt immer dann auf, wenn Abfragen auf mehreren Prozessoren parallel ausgeführt werden. Eine häufige Fehldiagnose bei sehr hohen CXPACKET Wartezeiten besteht darin, dass die parallele Arbeitslast das Festplatten-I/O-Subsystem überlastet. Überprüfen Sie jedoch zunächst die von diesen Wartezeiten betroffenen Abfragen. Wenn es sich um ein OLTP-System wie Dynamics 365 BC oder NAV handelt, bei dem Transaktionen kurz und schnell sein sollten, sollten Sie die Abfragen untersuchen, für die parallele Pläne vorliegen, und nach Optimierungsmöglichkeiten suchen. In ähnlicher Weise können übermäßige I/O-Wartezeiten beispielsweise einfach ein Zeichen dafür sein, dass eine große Tabelle wiederholt gescannt wird und dass ein Index die Abfrage unterstützen kann.

Schnelle Fehlerbehebung in Echtzeit

So proaktiv ein DBA sein möchte, um Probleme zu lösen, bevor sie zu echten Problemen werden, spielt das Überwachungstool immer eine wichtige Rolle bei der Lösung von Echtzeit-Leistungsproblemen.

Wenn auf einem wichtigen Business-Server derzeit schwerwiegende Leistungsprobleme auftreten, sollten Sie sehr schnell wissen, welche Verbindungen und Sitzungen betroffen sind und welche Aktivitäten auf dem Server stattfinden. Eine Möglichkeit, wie ein professionelles Überwachungstool wirklich helfen kann, besteht darin, nicht nur übermäßiges „Blockieren“ zu erkennen oder beispielsweise zu melden, dass ein Deadlock aufgetreten ist, sondern innerhalb der Warnung auch eine Liste der aktiven Prozesse und einige einfache Visualisierungen des Blockierens bereitzustellen oder Deadlocking-Kette. Das folgende Bild zeigt eine Blockierungskette:

Das Blockieren in SQL Server ist wie eine Kreuzung im Stau. Die Abfrage im Herzen des Problems wirkt sich auf andere Abfragen aus und lässt sie warten, bis die Problemabfrage ausgeführt oder beendet wurde. Häufige Ursachen sind übermäßige I/O aufgrund von Scans für große Tabellen oder Transaktionen, die nach Fehlern offen bleiben. Um das Problem kurzfristig zu lösen, muss die fehlerhafte Abfrage gefunden und möglicherweise die Verbindung unterbrochen werden. Ein gutes Überwachungstool, wie V8 Search XE identifiziert die Ursache der Blockierung, damit geeignete Maßnahmen ergriffen werden können.

Ein Deadlock ist eine kreisförmige Verriegelungskette, da jede Verarbeitung der Blockierungskette auf einen oder mehrere andere Prozesse in derselben Blockierungskette wartet, sodass keiner abgeschlossen werden kann. Dies ist eine schwerwiegende Fehlerbedingung, die SQL Server durch Beenden und Zurücksetzen eines der Prozesse behebt. Der DBA muss sofort nachforschen, um herauszufinden, was den Deadlock verursacht hat, und Maßnahmen ergreifen, um ein erneutes Auftreten zu verhindern.

Vorher und Nachher: ​​Baselines

Eine weitere wichtige Verwendung der von uns gesammelten Überwachungsdaten ist die Erstellung visueller Basislinien. Dies hilft dem DBA zu verstehen, ob sich die Leistung in bestimmten Zeiträumen vorhersehbar verschlechtert oder ob die aktuelle Leistung des Servers typisch oder ungewöhnlich ist. Sie können auch auf Änderungen achten, wenn die Daten wachsen oder das System mit der Zeit geschäftiger wird.

Wie oft hören wir: „Dynamics NAV war gestern langsam“ oder „Es war schneller, bevor wir das Upgrade veröffentlicht haben“ oder „NAV ist gerade langsam“? Um diese Behauptungen zu validieren und die Ursache herauszufinden, benötigen wir Ressourcenverbrauchsdaten von gestern, um sie mit heute vergleichen zu können.

Vielleicht können Sie jedoch feststellen, dass die CPU-Auslastung dieser Prozessors jetzt höher ist als letzte Woche. Ist das ein beunruhigender Trend? Zur Unterstützung möglicher Optimierungsbemühungen müssen Sie feststellen, ob Sie das sehen, was als normales Verhalten beschrieben werden kann. Oder Sie sehen tatsächlich einen Trend, der zu Druck auf diese Ressource führt. Sofern Sie keine Maßnahmen ergreifen, wie Suche nach Möglichkeiten, die Last in diesen geschäftigen Zeiten besser auf die verfügbaren Prozessoren zu verteilen.

Fazit

SQL Datenbanken sind äußerst komplex, noch bevor Sie versuchen, ihr Verhalten unter Last im Produktionsbetrieb zu verstehen. Sie brauchen dieses Verständnis der Leistung, um vorhersagen zu können, wie Sie mit Expansion oder Skaleneffekt umgehen werden. Sie müssen verhindern, dass Stresssymptome zu Problemen werden, die sich auf den Service auswirken. Sie brauchen die Informationen, die es Ihnen ermöglichen, intelligente Entscheidungen über das Hosting zu treffen. Sie müssen auch verstehen, was in der Dynamics 365 BC/NAV SQL Datenbank passiert ist, als ein zeitweise auftretendes Problem auftrat.

Alle RDBMS verfügen über Diagnosetools. Sie werden jedoch am besten verwendet, nachdem die allgemeine Natur und der Kontext eines Leistungsproblems verstanden wurden. Insbesondere, wenn die Zeit knapp ist und Probleme behoben werden müssen, bevor sich die Benutzer beschweren. Mit zunehmender Arbeitsbelastung des Betriebspersonals lohnt es sich, über ein System zu verfügen, das die Dynamics 365 Business Central / NAV System im Auge behält und Warnungen ausgibt, wenn eine Kombination von Metriken einen beunruhigenden Trend zeigt.

Gerne beantworten wir Ihnen persönlich weitergehende Fragen zu diesem Thema.
Ihr dynamicsproject.com Team

Dynamics 365 Business Central Wave 2

Dynamics 365 Business Central 2020 Release Wave 2 ist die erste Version, die die klassische Entwicklungsumgebung (auch als C/SIDE bezeichnet) nicht enthält. Mit dem Release Wave 2 von 2020 greifen Benutzer über den Browser, die Windows 10-Desktop-App, mobile Apps auf Android und iOS oder in Outlook auf Dynamics 365 Business Central zu.

Dynamics 365 Business Central 2020 Release Wave 2

Microsoft beschleunigt seine Investitionen in Geschwindigkeits- und Produktivitätsfunktionen für das moderne Browser-Erlebnis und erreicht damit einen wichtigen Meilenstein bei der Umwandlung in ein erstklassiges Desktop-Erlebnis für neue und erfahrene Dynamics Benutzer. Die modernen Clients unterstützen jetzt so viele Produktivitätsfunktionen, dass der ältere Dynamics NAV Windows-Client für Dynamics 365 Business Central künftig nicht mehr verfügbar ist. Der ältere Dynamics NAV-Client wird in früheren Versionen entsprechend dem Support-Lebenszyklus weiterhin unterstützt.

Stärkung der unabhängigen Software-Anbieter (ISV)

Indessen bietet das Release Wave 2-Update für 2019 eine Reihe von Funktionen, die die ISV-Entwicklung (Independent Software Vendor) für neue Lösungen vereinfachen und insbesondere die Migration vom Quellcode-Anpassungsmodell von Dynamics NAV zu Dynamics 365 Business Central optimieren sollen. Darüber hinaus wird sich Microsoft darauf konzentrieren, den Weg für unabhängige Software-Anbieter (ISVs) zu optimieren, um ihre Lösungen – und damit auch ihre Kunden – online zu Dynamics 365 Business Central zu bringen.

Moderne Entwicklertools

Die moderne Entwicklungsumgebung, die auf Visual Studio Code mit Azure DevOps und einer AL-Sprache basiert, unterstützt jetzt die Entwicklung großer Apps. Daher wird C/SIDE für Dynamics 365 Business Central in Zukunft eingestellt. Deswegen haben wir uns und unsere Performance Analyse Tool „V8 Search XE“auf die neue Situation eingestellt. Trotzdem wird sich im Bereich der Performance Optimierung von Dynamics 365 BC Wave 2 und SQL Server einiges verändern.

 So arbeiten Sie mit Leistungsproblem in Dynamics 365 Business Central 2020 Release Wave 2 zukünftig…

Was tun Sie, wenn sich Benutzer beschweren, dass „es langsam ist“ in der neuen modernen Browser Umgebung? In diesem Abschnitt möchten wir einen Fehlerbehebungsprozess beschreiben, der Ihnen dabei helfen kann, die Hauptursache des Problems zu finden.
Bevor Sie mit der Lösung eines Leistungsoptimierungsproblems beginnen, ist es häufig hilfreich, „langsam“ zu definieren und zu quantifizieren. Versuchen sie, akzeptable Werte für die Ausführungszeit von „langsamen“ Vorgängen mit BC Benutzern auszuhandeln. Dies wird manchmal als „Festlegen einer Basislinie“ bezeichnet.

Um ein Leistungsproblem zu lösen, werden häufig folgende Iterationen durchgeführt:

  • Messen Sie die Systemleistung und erfassen Sie Leistungsdaten vom SQL Server und den Dynamics 365 BC Servern
  • Suchen Sie einen Engpass
  • Beseitigen Sie den Engpass

und fahren Sie fort, bis die „langsamen“ Operationen mit der festgelegten Basislinie vergleichbar sind.

Überwachung und Analyse der Telemetrie Business Central 2020 Release Wave 2 und höher.

Business Central sendet Telemetriedaten für verschiedene Aktivitäten und Operationen. V8 Search XE sammelt die Telemetriedaten für Business Central On-Premises über die V8 Services. Das heißt die Daten werden zentral für alle Server in der V8 Datenbank gespeichert.
Durch die Überwachung der Telemetrie erhalten Sie einen Überblick über die Aktivitäten und den allgemeinen Gesundheitszustand ihres Dynamics Systems. Es hilft Ihnen, Probleme zu diagnostizieren und Vorgänge zu analysieren, die sich auf die Leistung auswirken.

Der folgende Artikel kann Ihnen helfen, mehr zu diesem Thema zu finden:
Monitoring and Analyzing Telemetry Business Central | Microsoft Docs

Fazit:

Microsoft hat unserer Meinung nach viele neue Features im Bereich Performance Optimierung für Dynamics Business Central 2020 Release Wave 2 zur Verfügung gestellt. Andererseits werden auch sich auch Systembetreuer und Administratoren genauso wie C/AL-Entwickler/-innen mit der AL Programmierung befassen müssen. Wir stimmen der weitverbreiteten Meinung zu, dass wir die Dynamics Business Central / NAV onPremise Versionen noch einige Zeit mit der C/AL Programmiersprache unseren Spaß haben dürfen. Natürlich spielt das Know-how über die älteren NAV / BC Versionen für einen ERP Entwickler und Administratoren auch in Zukunft eine entscheidende Rolle.
Dinge ändern sich aber manchmal auch sehr schnell.

Gerne beantworten wir Ihnen persönlich weitergehende Fragen zu diesem Thema.
Ihr dynamicsproject.com Team