Entwicklung > Tools > Prüfungen > Memo-Analyse 

In der Objektverwaltung kann der Benutzer über das Menü Auswahl / Auswahl Filter definieren, mit denen die Auswahl in der Liste links auf einen Teil der Tabelle eingegrenzt wird. Eine solche Filterung kann gespeichert und regelmäßig wiederverwendet werden.

Sind die gefilterten Tabellen sehr umfangreich (mehrere Hundert Zeilen), kann es allerdings zu Performance-Problemen kommen. Performance-Probleme entstehen auch deswegen, weil die Memos vom Typ Standard (d.h. sie werden bei Eintritt des Benutzers in die Funktion geladen) oder vom Typ Global (d.h. sie werden von einer Gruppe von Benutzern gemeinsam benutzt) sein können.

Mit der Analysefunktion der vom Benutzer in einer Arbeitsmappe abgelegten Memos können potenzielle Performance-Probleme im Nachhinein aufgespürt werden. Hierbei ist es wichtig zu beachten, dass diese Funktion nur Hinweise gibt und in einigen Fällen auch Probleme aufzeigt, die ohne negative Auswirkungen bleiben können. Beispielsweise kann ein Memo, für das vom Benutzer mit diesem Tool kein diskriminierender Index gefunden wird, dennoch einen bereits an anderer Stelle in der Standard-Bearbeitungslogik definierten Filter ergänzen.

Dennoch sollten für jede Zeile der Logdatei die Fehlermeldung überprüft und ggf. Gegenmaßnahmen ergriffen werden. Folgende Gegenmaßnahmen sind denkbar:

  • Das entsprechende Memo wird gelöscht
  • Ein geeigneter Optimierungsindex wird hinzugefügt

Ein solcher Optimierungsindex wird auf Basis der in der Arbeitsmappe vorhandenen Memo-Dateien sowie der verschiedenen Indexkriterien in der Tabelle (darunter auch die Optimierungsindizes) erstellt, und die Diagnose erfolgt anhand der Anzahl von Tabellenzeilen.

Mit den beiden im Folgenden aufgeführten Parametern können die vom Benutzer angelegten Memos geprüft werden. Eine solche Memo-Prüfung ist jedoch nur bei Anlage möglich. Dies führt dazu, dass sich zunächst korrekte Memos einige Monate später suboptimal verhalten können, wenn beispielsweise ihre Performance durch das Datenbankvolumen leidet. Daher ist es auch dann wichtig, dieses Tool aufzurufen, wenn die beiden im Folgenden beschriebenen Parameter korrekt gesetzt sind.

Vorbedingungen

SEEREFERTTO Siehe Dokumentation Umsetzung

Bildschirmverwaltung

Register Erfassungsbildschirm

Übersicht

Hier werden drei Werte (Anz. Zeilen) zur Beschreibung der Tabellen definiert, in denen die Memos geprüft werden sollen.

Nachdem die Bearbeitung beendet ist, wird eine zweiteilige Logdatei geschrieben. Im ersten Teil dieser Logdatei werden alphabetisch nach Memodatei die aufgespürten Probleme aufgelistet und durchnummeriert. Die Meldungen in der Logdatei haben folgende Form:

  • Einer ersten Kopfzeilenzeile sind Memoname (NAME), Memostatus (lokal oder global), betroffener Benutzer (UUUUU) sowie die Memotabelle (XXXXXX) zu entnehmen. Die problematischen Memos sind nummeriert (Feld NNN), so dass sich die nächste Zeile ergibt (lokal kann dabei durch global ersetzt werden):

NNN lokales Memo UUUUU.NAME in Tabelle XXXXXX (Tabellentitel)

  • eine oder mehrere Zeilen zum Performance-Problem dieses Memos. Die möglichen Meldungen lauten folgendermaßen:

MELDUNG

DEFINITION

*** WARN (MMMM) *** BESCHREIBUNG

Performance-Problem: MMMM Zeilen sind in der Tabelle enthalten.

*** PERF (MMMM) *** BESCHREIBUNG

Ernstes Performance-Problem: MMMM Zeilen sind in der Tabelle enthalten.

*** KRIT (MMMM) *** BESCHREIBUNG

kritisches Performance-Problem: MMMM Zeilen sind in der Tabelle enthalten.

 

FELD BESCHREIBUNG

Erklärung

Kein passender Index zum Feldfilter FELD1 FELD2 ...: Performance-Problem

Zu den angegebenen Filtern existiert kein passender Index. Wird das Memo häufig gebraucht, sollte ein Optimierungsindex angelegt werden.

Der Sortierschlüssel der Liste links (SCHLUESSEL1) unterscheidet sich vom Filterschlüssel (SCHLUESSEL2)

Zum Filtern der Daten wird zunächst ein erster Index SCHLUESSEL2 verwendet. Danach wird für die Anzeige in der Liste links nach Index SCHLUESSEL1 sortiert. Hieraus können sich Performance-Probleme ergeben, falls der Filterindex schwach diskriminierend ist (und deswegen eine große Anzahl von Zeilen sortiert werden müssen).

Operator 'Abweichung' in Feld FELD1

Operator 'Wie' in Feld FELD1

Mit diesen beiden Operatoren lassen sich Wertebereiche für die Indexierung vorgeben. Die ist jedoch komplex und kann zu eingeschränkter Performance führen.

Verknüpfung zweier Bedingungen durch den 'oder'-Operator

Die Auswahl erfolgt aus einer oder mehreren durch ein oder mehrere Oder verknüpfte Bedingungen Diese Abfrageart ist in der Regel relativ schwerfällig.

Vorgabe eine Ausdrucks: Ausdruck

Diese Art von Auswahl wird nicht analysiert und muss daher individuell auf potenzielle Performance-Probleme untersucht werden.

Mehrere Tabellen im Memo, Abfrage überprüfen

Hierbei werden Auswahlen über Joins getroffen. Diese Abfrageart kann nicht automatisch vom Benutzer geprüft werden: Zur Prüfung auf Performance-Probleme muss eine manuelle Prüfung durchgeführt werden.

Im zweiten Teil der Logdatei wird eine Liste der vorherigen Probleme aufgeführt (eine Zeile pro Problem). Diese Liste enthält die Nummer des vorherigen Problems sowie den Memoname im Format UUUUUU.NAME/TABELLE, die Anzahl von Tabellenzeilen und eine Kurzübersicht über die Filterkriterien. Sortierrichtung:

  • Zunächst werden die Standardmemos aufgelistet, danach die anderen.
  • Zunächst werden die globalen Memos aufgelistet, danach die lokalen.
  • Sind diese beiden Kriterien gleichwertig, erfolgt die Sortierung in absteigender Reihenfolge nach Anzahl Tabellenzeilen.

D.h. es werden zunächst die Memos mit den wahrscheinlich größten Performance-Problemen aufgelistet.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Testoptionen

  • Kritische Größe (Feld NBLIGBIG)

Anzahl von Zeilen in der Tabelle, ab der ein Indexproblem am Memo als kritisch für die Performance erachtet wird.

  • Optimale Größe (Feld NBLIGTB)

Anzahl von Zeilen in der Tabelle, ab der ein Indexproblem am Memo als ernst für die Performance erachtet wird.

  • Warnungsschwelle (Feld NBLIGWARN)

Durch diese Größe (Anzahl Tabellenzeilen) ist die Schwelle festgelegt, unterhalb derer Indexprobleme eines Memos als unproblematisch für die Performance betrachtet werden. Bei Überschreitung des Schwellenwerts wird eine Hinweismeldung angezeigt (sofern nicht auch die nächsten Schwellen überschritten werden).

Schließen

 

Batchaufgabe

Diese Funktion kann im Batch gestartet werden,, aber mit dem Start ist keine Standardaufgabe verbunden.

Fehlermeldungen

Nur generische Fehlermeldungen.

Verwendete Tabellen

SEEREFERTTO Siehe Dokumentation Umsetzung