BLOG

Dynamics NAV und SQL Server Optimierung

Dynamics NAV und SQL Server Optimierung


Dynamics NAV und SQL Server Optimierung. In unserem Blog möchten Ihnen unsere Experten in den nächsten Wochen einen Überblick über die Optimierungsmöglichkeiten Ihrer Dynamics NAV Lösung und des dazu gehörigen SQL Servers vermitteln. Wenn es um die Optimierung geht, ist die Auswahl an Werkzeugen vielfältig. Eine richtige Entscheidung zu treffen, welche Tools die geeigneten sind, ist nicht einfach.

 

Wir möchten Ihnen mit Hilfe unseres V8 NAV SQL Studio die einzelnen Schritte für die vorliegende Aufgabenstellung der System Optimierung darlegen, da wir seit vielen Jahren in beiden Welten zuhause sind (MS SQL Server und Dynamics NAV). Unser Analyseweg geht von der Gesamtansicht in die Detailansicht: von der Hardware über die SQL Server Konfiguration bis zur NAV C/AL Programmierung. Sie lernen die einzelnen Module des V8 NAV SQL Studio kennen wie z. B.

 

  • V8 Live Monitor (Performance Counter) für den SQL Server und das Dynamics NAV Service Tier
  •  

  • V8 SQL Profiler
  •  

  • V8 Full Event Tracing für Windows (ETW)
  •  

  • Tipps zur Optimierung von SQL-Server-Indizes

 

[URIS id=2638]

 

Die einzelnen Blogs vermitteln Ihnen die notwendigen Kenntnisse, um im Dynamics NAV C/AL Code programmierten Routinen zu bewerten und die durch den C/AL Code generierten SQL-Abfragen zu verbessern, sowie die damit verbundenen Antwortzeiten des SQL Servers zu verkürzen. Es wird systematisch erläutert, wie die Abfrageperformance gemessen und optimiert werden kann.

Das V8 NAV SQL Studio bietet mehrere Tools, mit denen man die Performance überwachen, einstellen und optimieren kann. In einem Blog werden wir uns damit beschäftigen, wie man die V8 SQL-Servertools nutzen kann um den Einsatz von Indizes zu optimieren.

Die Dynamics NAV Leistungsindikatoren (Data Collector Set) geben Auskunft darüber, wie gut der Microsoft Dynamics NAV Server arbeitet. Durch die Verwendung der V8 Monitoring-Tools können Sie die Daten der Leistungsindikatoren der Komponenten wie z. B. NAV Service Tier, Speicher, physischen Datenträger und SQL Server überwachen, um evtl. Optimierungen der Leistung vorzunehmen.

 

Sie können uns jederzeit Fragen zu den Artikeln stellen und wir freuen uns über jede Anmerkung und Feedback!

 

Ihr Team von DynamicsProject.com

Running Object Table (ROT)

Running Object Table (ROT)

Funktioniert der Zugriff über die ROT-Tabelle (Running Object Table) auch noch mit dem Microsoft Dynamics NAV 2015 und 2016 Development Environment Client?


Ja! Funktioniert.

 

Einige Blogs haben das Thema „Dynamics NAV und die ROT-Tabelle“ schon vor einigen Jahren aufgegriffen. Wir möchten uns mit diesem Thema noch einmal kurz beschäftigen. Einige Dynamics NAV Tools benutzen dieses Feature der Windows-Programm-Schnittstellen noch heute. Auch unsere neuste Version von V8 NAV SQL Studio benutzt diese Technik, um zum Beispiel die virtuellen Tabellen des Microsoft Dynamics NAV 2015 / 2016 Development Environment Clients auslesen zu können.

 

Was ist Running Objects Table?

 

Im Betriebssystem Windows unter COM (Component Object Model) ist ROT eine Tabelle von aktiven COM-Objekten (Interprozesskommunikation und dynamische Objekterzeugung). Nicht jede Instanz einer COM-Klasse wird automatisch in die ROT aufgenommen. Viele bekannte Anwendungen wie z. B. Excel, Word, Access, Outlook oder Visual Studio bieten Automatisierungsmöglichkeiten über COM-Schnittstellen. Manchmal möchte man eine bereits geöffnete Instanz einer solchen Anwendung fernsteuern. Seit Einführung von Hyperlinks im Dynamics NAV Classic Clients, wird die Running Object Table (ROT Tabelle) für diese Funktion als Basis benutzt. Das „Fernsteuern“ ist auch nach wie vor mit der neusten Version von Dynamics NAV 2015 / 2016 möglich.

 

Wo finden sie Informationen über die Schnittstellen?

 

Hier sind einige Klassennamen aus der Registry:

  • INSHyperlink

  • INSObjectDesigner

  • INSApplication

  • INSForm

 

Beispiel des C# .NET Source Codes in Visual Studio:

 

Running Object Table (ROT)

 

Running Object Table (ROT)

 

Running Object Table (ROT)

 

Diese Guid („50000004-0000-1000-0001-0000836BD2D2“) wird für alle Dynamics NAV Classic Clients als aktives COM-Objekt in der ROT-Tabelle registiert.

 

Für C# .NET gibt es einige interessante Beispiele mit Source Code zum Thema „Dynamics NAV und die ROT-Tabelle“ im verschiedenen Foren und Blogs.

 

Sie können uns jederzeit Fragen zu den Artikeln stellen und wir freuen uns über jede Anmerkung und Feedback!

 

Ihr Team von DynamicsProject.com

Back to Top

Warum ist Dynamics NAV langsam

Warum ist Dynamics NAV langsam?


Warum ist Dynamics NAV langsam? Im Laufe der Jahre sind wir bei DynamicsProject.com oft Unternehmen um Hilfe gebeten worden, da das Dynamics NAV System aus irgendeinem Grund immer langsam wurde. Sehr oft bei Unternehmen die eine Dynamics NAV Datenbank Größe über 50 GB haben.

 

Grundsätzlich sind die neuen Dynamics NAV Versionen und die Microsoft SQL Datenbank-Server gut aufeinander abgestimmt. Das Dynamics NAV Standardsystem („Dreischicht-Architektur“) arbeitet tadellos mit SQL Server zusammen. Aber wer arbeitet schon mit dem Dynamics NAV Standard?

 

Nun stellt sich die Frage, wo die Performance verloren geht. Wir bei Dynamics Project unterscheiden bei unseren Performanceanalysen zwischen Infrastruktur- und Anwendungs-Engpässen.

 

 

1. Die Infrastruktur

 

Die Infrastruktur ist schuld, wenn das System träge reagiert. Entweder ist der Server zu langsam oder das Netzwerk ist überlastet. Das ist die Wahrnehmung der meisten Dynamics NAV User. Leider ist das auch sehr oft auch die erste Aussage der Dynamics NAV Consultants gegeben über dem Kunden.

 

Die Lösung muss sein, entweder das Verbessern der Komponenten oder das Austauschen der Hardware. Oft können große Verbesserungen durch die Modernisierung der Infrastruktur vorgenommen werden. Allerdings gibt es noch andere Möglichkeit, die oft übersehen wird, nämlich die Anwendung.

 

2. Die Anwendung

 

Für die meister Dynamics NAV Anwender ist der RTC oder Classic Client nur eine geheimnisvolle Sache, die geschieht, wenn der Benutzer mit dem Computer interagiert. Die Geschwindigkeit dieser Anwendung wird oft nur im Zusammenhang mit der Leistung der aktuellen Workstation, Server oder Netzwerk gesehen. Diese Annahme könnte nicht weiter von der Wahrheit entfernt sein. Eine schlecht programmierte Dynamics NAV Anpassung kann noch viel schlimmer Auswirkungen haben, als jedes Performance-Problem der Hardware.

 

Unsere Empfehlung:

Sehen Ihr Dynamics NAV und Microsoft SQL Server immer als eine Einheit. Leider wird der Microsoft SQL Server oft nur als „Daten“ Behälter angesehen und dem entsprechend nicht ausreichend im ERP-Gesamtkonzept berücksichtigt.

 

Was können Sie tun?

Je nach Einsatzzweck kann der Microsoft SQL Server sehr komplex erscheinen. Und wenn es um Leistungsoptimierung mit Dynamics NAV geht, wissen viele DBAs einfach nicht, wo sie anfangen sollen. Leistungsoptimierung ist definitiv einer der Bereiche, wo Erfahrung ein guter Lehrer ist.
Aber irgendwo müssen jeder Datenbankverantwortliche beginnen Erfahrungen zu sammeln.

 

Wir möchten Ihnen hier ein paar generelle Anregungen zum SQL Server Performance-Tuning geben. Hierbei handelt es um einfache Dinge der Leistungsoptimierung für den SQL Server.

 

1. Identifizierung problematischer SQL Abfragen

 

In einer bestimmten SQL Server-Instanz gibt es vermutlich 7 bis 10 Dynamics NAV Abfragen, die für ca. 80 bis 90 Prozent der schlechten Performance verantwortlich sind, die im SQL Monitoring (z.B. Ablaufverfolgung mit dem SQL Server Profiler) im Laufe des Tages zu sehen sind.
Wenn Sie diese „Problem“ Abfragen identifizieren können, dass bei Dynamics NAV nicht ganz so einfach ist, haben Sie eine gute Ausgangsbasis, um die Beeinflussung auf die Gesamtleistung Ihres Servers zu optimieren.

 

Einrichten einer Blocked Process Report-Ereignisklasse (SQL Server Extended Events)

 

Die Blocked Process Report-Ereignisklasse zeigt an, dass ein Task länger als die angegebene Zeitspanne blockiert wurde. Diese Ereignisklasse schließt keine Systemtasks oder Tasks ein, die auf Ressourcen warten, für die keine Deadlocks erkannt werden können. Wir benutzen die SQL Server Extended Events um z.B. Sperren von Dynamics NAV zu analysieren.

 

2. Suchen Sie nach Datenträgerengpässen I/O

 

Die Auflistung der I/O-bezogenen Datenbank-Management-Objekte (DMOs) hilft ihnen bei Untersuchung, wenn Daten geschrieben und vom Datenträger gelesen werden. I/O Engpässe sind mit die wichtigsten Gründe, warum die Leistung des SQL Server leidet. Wenn Sie feststellen, dass viele physische I/O-Engpässe auftreten, sollte der Schritt sein, die Ursache aller Abfragen mit höhen physischen I/O sind zu finden, bevor Sie mehr Hardware hinzuzufügen.

 

Sie haben relativ einfache Methoden zur Verfügung, um festzustellen, ob Sie I/O Probleme haben:

  • sys.dm_exec_query_stats – Gibt die Aggregatleistungsstatistik für zwischengespeicherte Abfragepläne im SQL Server zurück.

  • sys.dm_exec_connections – Gibt Informationen über die zu dieser SQL Server-Instanz hergestellten Verbindungen zurück.

  • sys.dm_exec_sessions – Ist eine Sicht des Serverbereichs mit Informationen zu allen aktiven Benutzerverbindungen und internen Tasks. Sie können hiermit die aktuelle Systemlast anzeigen sowie eine relevante Sitzung ermitteln.

  • sys.dm_os_workers – Gibt eine Zeile für jeden Arbeitsthread im System zurück.

 

3. Indexverwendung

 

Die sys.dm_db_index_operational_stats DMF (Dynamic Management Function) ist eine oft vernachlässigte Quelle von Informationen. Sie kann Ihnen wertvolle Informationen über den benutzten Index einer Tabelle geben. Durch die Nutzung dieser DMF, können Sie alle Arten von Informationen entschlüsseln, nicht nur welche Indizes, sondern auch wie sie verwendet werden.

 

Fazit:

Inzwischen werden Sie bemerkt haben, dass einige dieser Themen größere Konzepte und Techniken erfordern, um in die Tiefe der Materie vorzudringen. Allerdings ist keines dieser Themen unlösbar für die DBAs.

 

Lesen Sie im zweiten Teil:

Warum ist Dynamics NAV langsam – Die neue Sicht der Dinge.


Sollte dieses oder ähnliche Themen Ihr Interesse geweckt haben, so würden wir uns über einen offenen Dialog mit Ihnen freuen.

 

Ihr Team von DynamicsProject.com

Back to Top

Neuer Blog für Dynamics NAV und Microsoft SQL Server

Neuer Blog für Dynamics NAV und Microsoft SQL Server

 

Herzlich Willkommen bei DynamicsProject.com!
Viel Vergnügen auf unserem neuen Blog.

 

Neuer Blog für Dynamics NAV und Microsoft SQL Server. Da die Themen Performance-Optimierung und C/AL Programmierung für Dynamics NAV und Microsoft SQL Server sehr abwechslungs- und facettenreich sind, bieten wir Ihnen ab heute in regelmäßigen Abständen kurze Artikel an, mit denen Sie tiefer in die Materie einsteigen können. Gleichzeitig dient der Blog dazu, Ihnen einen ersten Eindruck zu verschaffen, was Sie von dem Dynamics Project Team erwarten können.

 

Sie können uns jederzeit Fragen zu den Artikeln stellen und wir freuen uns über jede Anmerkung und Feedback!

 

Wir wünschen Ihnen und uns viel Erfolg

Ihr Team von DynamicsProject.com