zum Thema Performance der Indexerstellung habe ich einige Tests durchgeführt, damit ich handfestes Zahlenmaterial liefern kann.
HW 720 7+ 2 Cores, SW 7.2 OmniFind 1.3
Für die Parallelisierung der Indexerstellung und der SQL-Aufrufe auf die Prozessorcores ist SMP sinnvoll: 5770SS1 Option 26. Es kann für die komplette Maschine im Systemwert QQRYDEGREE oder pro Job aktiviert werden. Bei mir ist im Systemwert QQRYDEGREE *MAX eingestellt.
SMP ist bei Systemen ab 2 Cores nützlich. Eine ausführliche Beschreibung findet sich hier:
Einige von uns wissen, dass es in-Memory auf IBM i oder AS/400 schon seit über 15 Jahren gibt und zwar über den Befehl SETOBJACC. Damit können komplette Dateien oder Programme in einen Speicherpool gelegt werden. Für die Performanceoptimierung der Datenbankzugriffe habe ich je nach Anwendung zwei Wege gefunden.
- inMemory für RPG-Programme mit native Zugriff über chain/setll/read -> SETOBJACC
- inMemory für RPG-Programme mit embedded SQL -> ab 7.1 keepinmem *yes + SMP ab 2 Cores
An dieser Stelle bin ich für weitere Ideen sehr aufgeschlossen.
Doch nun weiter mit OmniFind. Zunächst habe ich eine einfache Datei mit zwei Feldern erstellt.
- Dann schreibe ich per beigefügtem Programm Daten hinein.
- Als nächstes erstelle ich mit dem Script den OmniFind Index. Das Script erzeugt unter anderem eine logische Datei mit Indexinformationen und drei Trigger für Einfügen, Ändern und Löschen.
PHP-Code:
call sysproc.systs_create('tsto','employ01','tsto.employp(skill)', 'ccsid 1208 language en_US update frequency none update minimum 1 index configuration(ignoreemptydocs 1 , updateautocommit 0 )');
- Jetzt ist der Index noch ohne Daten. Mit folgendem Script wird der Index aufgebaut. Das könnte man bereits im vorhergehenden Script tun, aber hier habe ich mich entschieden, das Aktualisierungsintervall selbst zu bestimmen. Das Script kann auch einfach mit RUNSQLSTM im Dialog oder Batch aufgerufen werden. Es muss nur laufen, wenn im Textfeld, das für den Index herangezogen wird, Änderungen vorgenommen oder Sätze hinzugefügt oder gelöscht werden.
@Dieter - bei Problemen mit OmniFind hilft Dir das developerWork Forum gerne weiter. Ich hatte zwei Fragen gepostet, die mir innerhalb kurzer Zeit beantwortet wurden.
Bookmarks