Zum Inhalt

OPplus Performance Information

AL Extension

Es kann in aktuellen OPplus Versionen immer wieder zu Problemen mit der Performance kommen. Dies ist letzten Endes mit den technischen Gegebenheiten von Business Central zu begründen.

Aus diesem Grunde arbeiten wir mit der neuen OPplus Version an einer zufriedenstellenden Lösung.

Performance Probleme

Die Probleme in der Performance entstehen durch die Erweiterungen der Standard-Tabellen (Table Extension). Für jede Tabelle wird auf dem SQL Server eine zweite Tabelle erzeugt, die dann den Primärschlüssel, sowie die Extension Felder enthält.

Bei jedem Lesezugriff eines Datensatzes muss der Server zusätzlich alle Erweiterungstabellen dazuholen, um wieder einen vollständigen Datensatz zu haben. Diese Technik kommt jedoch an Ihre Grenzen, wenn folgende Parameter zutreffen:

  • Sehr viele Datensätze

und / oder

  • mehrere Tabellen-Erweiterungen verschiedener Apps

und / oder

  • Fehleinrichtungen

Dies wirkt sich besonders auf die Postentabellen aus, in denen auch OPplus Felder ergänzt:

  • Sachposten
  • Debitorenposten
  • Kreditorenposten

Es sollte somit bei auftretenden Problemen immer darauf geschaut werden, aus welchem Grund die Performance Probleme hochkommen.
Auch ist die Verwendung alter technischer Stände (besonders im Bereich der Business Central 14 Version) immer wieder ein Problem.
Microsoft hat für den Mischbetrieb (Verwendung von C/AL und AL) einiges geändert. Bei großen Datenbanken in einer BC 14 Umgebung empfehlen wird aktuell weiterhin die Verwendung von C/AL Objekten.

Es ist leider nicht möglich, dass entsprechende Schlüssel unsererseits auf die Tabellen gesetzt werden, um eine bestmögliche und performante Sortierung auf dem SQL Server zu gewährleisten. Diese Funktionalität wurde im AL Bereich leider gestrichen.

Auszug aus Microsoft Launch Event

Auf dem Microsoft Launch Event gab es einen Vortrag von Ema Falamas und Predrag Maricic. Hier wurden die Auswirkungen an Hand kleiner Beispiele verdeutlicht.
Im ersten Beispiel wurden lediglich 5 eigene Erweiterungsfelder mit gebucht:

Beispiel 1

In einer „kleinen“ Datenbank hat das folgende Auswirkungen:

Beispiel 1 - 1

In einer „durchschnittlich großen“ Datenbank hat das folgende Auswirkungen:

Beispiel 1 - 2

Im zweiten Beispiel wurden diese 5 neuen Felder über eine Factbox in der Debitorenkarte angezeigt:

Beispiel 2

In einer „kleinen“ Datenbank hat das folgende Auswirkungen:

Beispiel 2 -1

In einer „durchschnittlich großen“ Datenbank hat das folgende Auswirkungen:

Beispiel 2 -2

Dabei hat die Anzahl der Extensions hat eine massive Auswirkung auf die Performance.

Beispiel 3

Hierzu gibt es auch entsprechende Microsft Docs Einträge:

Performance Article For Developers - Business Central | Microsoft Docs

How Application Configurations Affect Performance - Business Central | Microsoft Docs

Conclusions

Wie geht es weiter?

In den aktuellen OPplus Versionen (bis einschließlich OPplus 18.00) bauen wir grundsätzlich auf diese Technologie der Erweiterungen auf. Es kann somit, je nach Konstellation, zu Problemen führen, bei denen wir nicht die größten Möglichkeiten haben, etwas zu verbessern. Besonders in großen Datenbanken mit enorm vielen Posten ist das immer mehr zu beobachten.

In der OPplus Version 19.00 planen wir ein komplettes Redesign der Lösung OPplus. Diese soll dann entsprechend weitestgehend ohne diese Tabellenerweiterungen auskommen. Es wird ein paar wenige Tabellen geben, bei denen diese Art weiterhin notwendig ist; wir gehen jedoch davon aus, dass die Verwendung bei diesen Tabellen keine Performance-kritischen Inhalte aufweisen.

Aus den kritischsten Tabellen, den Postentabellen, werden wir uns komplett entfernen, sodass hier auf Basis der Lösung OPplus keine Probleme mehr auftauchen können. Auch die Verwendung von Schlüsseln ist in eigenen Tabellen wieder möglich und wird zusätzlich für deutliche Performance-Gewinne sorgen.