Der Create Index tangiert die Anwendungen, die per ISAM Methoden zugreifen (was anderes ist der sogenannte native I/O nicht. nicht negativ. Was deinen Join angeht, solltest du auf alle Fälle bei beiden Tabellen einen gleich gestaffelten Index über die Join Felder anlegen. Bei der where Klausel hat die Bedingung für a.af3 eine hohe Selektivität, sollte dahinter eine unique Bedingung liegen, dann sollte man auch diese in der Datenbank als Constraint oder unique Index anlegen; die Bedingung für af50 lässt sich nicht unterstützen.
Im richtigen Leben legt man zuerst alle fachlich erforderlichen Constraints an ( Primary Key, unique Bedingungen und referentielle Bedingungen, wie bei jeder SQL Datenbank eben und das war dann 80 % der Arbeit, den Rest kann man sich auch von der Datenbank sagen lassen, wenn der Job unter debug läuft sagt die Datenbank in dignostic Meldungen welche Indexe helfen könnten.
Bezüglich langsam: was ist denn hier konkret unter langsam zu verstehen?

D*B
Zitat Zitat von jogisarge Beitrag anzeigen
Hallo nochmal,

Danke für die Antworten bisher.
@Dieter
Wenn ich einen create index mache, beinträchtig das die bestehenden RPG-Anwendungen/PFs und LFs nicht ?
d.h. LF und INDEX kommen sich nicht in die Quere.

Ich möchte zwei Tabellen verknüpfen.
Tabelle taba
af1
af2
af3
af4
...
af50

Tabelle tabb
bf1
bf2
bf3
...
bf30

PHP-Code:
SELECT a.af1,a.af2,a.af3,b.bf30 
FROM taba a INNER JOIN tabb b 
ON a
.af1 b.bf1 AND a.af2 b.bf2 AND a.af3 b.bf3
WHERE a
.af3 4711 AND a.af50 <> '' 
Ziel ist, alle Sätze aus a, bei denen af50 gefüllt und af3=4711, und alle passenden aus b.

Was muss ich beachten, damit das SQL-Statement flott abgearbeitet wird?
Welche Felder müssen indiziert sein ?
(Birgitta schreibt ja, dass man LFs nicht verwenden soll)
Nach diesem Muster habe ich versucht einen Join bei uns zu testen, aber der war recht langsam.

Danke für eure Hilfe
Gruß jogi