Show TOC Anfang des Inhaltsbereichs

Treffermenge klein halten  Dokument im Navigationsbaum lokalisieren

Die Menge der selektierten Daten sollte möglichst klein gehalten werden, da diese zum einen den Speicher des Datenbanksystems und zum anderen das Netzwerk beim Transfer zum Applikationsserver belastet. Die Mittel in Open SQL um die Treffermenge klein zu halten sind die WHERE- und HAVING-Klausel:

Verwendung der WHERE-Klausel

Bei jedem Zugriff auf Datenbanktabellen sollte die WHERE-Klausel der entsprechenden Open SQL-Anweisungen verwendet werden. Selbst wenn ein ABAP-Programm mit SELECT-Anweisungen ohne WHERE-Klausel in einem Probebetrieb noch eine gute Performance hat, kann dies im Produktivbetrieb bei täglich wachsenden Datenmengen schnell anders werden. Nur in den seltenen Ausnahmefällen, in denen wirklich und jedesmal alle Daten einer Datenbanktabelle benötigt werden, braucht keine WHERE-Klausel verwendet werden.

Bei Verwendung der WHERE-Klausel nimmt das Datenbanksystem entsprechende Optimierungen vor und überträgt nur die benötigten Daten. Keinesfalls sollten nicht benötigte Daten nach ABAP übertragen und dort mit ABAP-Sprachmitteln aussortiert werden.

Verwendung der HAVING-Klausel

Wenn Zeilen von Datenbanktabellen mit der GROUP-BY-Klausel in der Selektion zusammengefasst werden, geschieht dies nach der Zeilenauswahl durch die WHERE-Klausel. Die HAVING-Klausel erlaubt es die Selektion nochmals durch Bedingungen auf den gruppierten Zeilen, insbesondere auf den Aggregatausdrücken, einzuschränken.

Auswirkung

Eine konsequente und richtige Verwendung der WHERE- bzw. HAVING Klausel führt dazu dass:

·        nur die wirklich notwendige Zahl an physischen I/O's auf den Datenbankdateien erfolgt.

·        im Datenbank-Cache nicht Daten abgelegt werden, die von der Anwendung eigentlich nicht gebraucht werden und die zur Verdrängung bereits vorhandener Daten aus dem Cache führen.

·        der CPU-Verbrauch des Datenbankrechners gering gehalten wird.

·        die Netzwerk-Kommunikation zum ABAP-Workprozess auf die Daten beschränkt wird, die von der Anwendung wirklich benötigt werden.

 

 

Ende des Inhaltsbereichs