Verwaltung und Programmierung
In den folgenden Abschnitten werden Methoden beschrieben, mit denen Sie die
Leistung optimieren können, wenn Sie die von Net.Data bereitgestellten
Sprachumgebungen verwenden.
Beachten Sie die folgenden Hinweise, um die Leistung Ihrer
Net.Data-Anwendung zu optimieren:
- Kombinieren Sie Ihre REXX-Programme, wo möglich. Die
Verwendung einer geringeren Anzahl von größeren Programmen bietet eine bessere
Leistung als die Verwendung einer größeren Anzahl von kleineren Programmen,
weil der REXX-Interpreter bei jedem Aufruf einer REXX-Sprachumgebungsfunktion
im Makro initialisiert wird.
- Speichern Sie das REXX-Programm in einer externen Datei, statt es inline
in das Net.Data-Makro einzufügen.
- Verweisen Sie bei externen REXX-Programmen in der Befehlszeile in
der %EXEC-Anweisung auf die globalen Variablen.
- Übergeben Sie Eingabeparameter direkt an ein REXX-Programm, indem Sie
globale Net.Data-Variablen definieren und auf die Variablen
verweisen. Rufen Sie bei internen REXX-Programmen die globalen
Variablen direkt in Ihrer REXX-Quelle auf.
- Erwägen Sie die Verwendung von MACRO_FUNCTION-Blöcken anstelle von
REXX-Programmen, um den Systemaufwand für das Starten des REXX-Interpreters zu
vermeiden.
In diesem Abschnitt werden Leistungstechniken für die Datenbank und
die SQL-Sprachumgebung beschrieben. Besuchen Sie folgende Website, um
mehr über DB2-Leistungsüberlegungen zu erfahren:
http://review.ibm.com/software/data/db2/performance
Die folgende Zusammenfassung nennt einige der einfachsten
Datenbankverfahren, mit denen der Zugriff auf die Datenbank verbessert werden
kann:
- Aktivieren Sie die Datenbank. Durch Absetzen des Befehls db2
activate database datenbankname werden Verbindungen zur
Datenbank wesentlich schneller hergestellt. Weitere Informationen zum
DB2-Befehl zum Aktivieren von Datenbanken finden Sie im Handbuch DB2 Systemverwaltung.
- Vermeiden Sie numerische Umwandlungen. Wenn ein Spaltenwert und ein
Literalwert verglichen werden, versuchen Sie, die gleichen Datentypen und
Attribute anzugeben. DB2 verwendet keinen Index für die benannte
Spalte, wenn der Literalwert eine höhere Genauigkeit hat als die
Spalte. Wenn die beiden zu vergleichenden Elemente unterschiedliche
Datentypen aufweisen, muss DB2 einen der beiden Werte umwandeln, was zu
Ungenauigkeiten führen kann (aufgrund der beschränkten Genauigkeit der
Maschine).
EDUCLVL ist beispielsweise ein ganzzahliges Halbwort (SMALLINT).
Geben Sie Folgendes an:
... WHERE EDUCLVL < 11 AND EDUCLVL >= 2
Und nicht:
... WHERE EDUCLVL < 1.1E1 AND EDUCLVL > 1.3
- Vermeiden Sie das Auffüllen von Zeichenfolgen. Versuchen Sie, die
gleiche Datenlänge zu verwenden, wenn Sie einen Zeichenfolgespaltenwert mit
fester Länge mit einem Literalwert vergleichen. DB2 verwendet keinen
Index, wenn der Literalwert länger ist als die Spaltenlänge.
EMPNO beispielsweise ist CHAR(6) und DEPTNO CHAR(3). Geben Sie
Folgendes an:
... WHERE EMPNO > '000300' AND DEPTNO < 'E20'
Und nicht:
... WHERE EMPNO > '000300 ' AND DEPTNO < 'E20 '
- Vermeiden Sie die Verwendung von LIKE-Mustern, die mit % oder _
anfangen. Das Prozentzeichen (%) und das Unterstreichungszeichen (_)
geben bei Verwendung im Muster eines LIKE-Vergleichselements eine Zeichenfolge
an, die ähnlich ist wie der Spaltenwert von Zeilen, die Sie auswählen
möchten. Bei Verwendung zur Angabe von Zeichen in der Mitte oder am
Ende einer Zeichenfolge können LIKE-Muster Indizes nutzen.
Beispiel:
... WHERE LASTNAME LIKE 'J%SON%'
Bei Verwendung am Anfang einer Zeichenfolge können LIKE-Muster DB2 jedoch
daran hindern, Indizes zu verwenden, die in der Spalte LASTNAME definiert sein
könnten, um die Anzahl der gelesenen Zeilen zu beschränken.
Beispiel:
... WHERE LASTNAME LIKE '%SON'
Vermeiden Sie die Verwendung dieser Symbole am Anfang von Zeichenfolgen,
vor allem, wenn Sie auf eine besonders große Tabelle zugreifen.
Übergeben Sie Eingabeparameter direkt an das Programm, das die
SYSTEM- oder Perl-Sprachumgebung aufruft. Definieren Sie dazu globale
Net.Data-Variablen, und verweisen Sie darauf. Verweisen Sie bei
externen Programmen und Perl-Scripts in der Befehlszeile in der
%EXEC-Anweisung auf die Variablen. Verweisen Sie bei internen
Perl-Scripts direkt in der Perl-Quelle auf die Variablen. Erwägen Sie
auch die Verwendung von MACRO_FUNCTION-Blöcken anstelle von Perl-Scripts, um
den Systemaufwand für das Starten des Perl-Interpreters zu
vermeiden.
[ Seitenanfang | Vorherige Seite | Nächste Seite ]