Performance-Probleme und -Lösungen
In diesem Artikel werden ein paar oft gesehene Auslöser schlechter Performance oder Nutzbarkeit gemeinsam mit ihren möglichen Lösungen erläutert.
Performance-Problem 1: Sehr viele Zeilen
Performance-Probleme treten in der Regel auf, wenn entweder die Anzahl der Zeilen (Ergebnis aus Schritt 1) sehr hoch ist, zum Beispiel 100.000 Zeilen oder mehr, oder wenn im Schritt 2 sehr viele zusätzliche Daten geladen werden.
Erstes lässt sich lösen, indem man die Datensätze stärker filtert – oft benötigen die Anwender nur aktuelle Daten, zum Beispiel die noch offenen Rechnungen, nur aktive Kunden oder Aufgaben, die nicht älter als zwei Wochen sind.
Performance-Problem 2: Sehr viele zusätzliche Datensätze werden geladen
In der Praxis häufiger zu sehen ist, dass berechnete Spalten eingeblendet sind, die Daten aus verknüpften Tabellen heranziehen. Wenn man zum Beispiel eine Tabellenansicht aller Kunden erstellt und in dieser Ansicht die Summe der Rechnungsbeträge einblendet, um den Gesamtumsatz pro Kunde anzuzeigen, wird Ninox in Schritt 2 auch alle Rechnungsdatensätze und alle Rechnungspositionen laden, um das Ergebnis berechnen zu können.
Dieses Problem kann man lösen, indem man entsprechenden Spalten ausblendet. Falls dies im Einzelfall nicht möglich ist, sollte die Ansicht noch stärker gefiltert werden - oder man ersetzt das berechnete Feld durch ein tatsächliches Datenfeld, in dem der Wert durch einen Trigger berechnet und gespeichert wird.
Performance-Problem 3: Komplexe Formeln
Verwandt mit vorhergehendem Fall ist die Situation, dass sehr komplexe Formeln in den Spalten der Ansicht hinterlegt sind. Um dies zu illustrieren:
Angenommen, eine Ansicht zeigt 1000 Zeilen. Eine der Spalten vergleicht einen Wert der Zeile mit 1000 Datensätzen aus einer anderen Tabelle. So ergeben sich schnell 1.000.000 Vergleiche, die Ninox berechnen muss, obwohl die Ansicht zunächst überschaubaren Umfang hatte.
Betrachten Sie dabei nicht nur die unmittelbare Formel, die angezeigt wird - eventuell nutzt die Formel weitere Formelfelder und die Komplexität ist über mehrere Ebenen verborgen.
Performance-Problem 4: "Sub-selects"
Ninox bietet im Umfang der Script-Sprache auch ein "select"-Statement. Die Berechnung von "select" kann Ninox nicht so gut optimieren, wie die Nutzung von Verknüpfungen. "select" sollte in Formeln von Tabellen-Ansichten nicht genutzt werden, da jede Zeile der Ansicht eine separate Abfrage auslöst.