Reden wir von QUERY/400 oder SQL?

Wenn wir von Query/400 reden können die ganzen Spekulationen über SQE und logische Dateien mit Select/Omit-Anweisungen vergessen werden. Query/400 wird mit der CQE ausgeführt und es ist auch nicht geplant dies je auf die SQE zu hieven (dafür gibt es ja DB2 WebQuery).

Da wir von der CQE reden, wäre es durchaus eine Möglichkeit anstatt der physichen Dateien die logischen Dateien mit den passenden Schlüssel-Feldern zu verwenden. Im Gegensatz zu SQL-Indices können logische Dateien durchaus in SQL-Abfragen oder QUERY/400 anzugeben (auch wenn man dies unterlassen sollte!).

Die CQE verwendet manchmal in Ausnahmefällen, z.B. wenn die Abfrage zu komplex ist oder die Optimierung einen Timeout erhält, die angegebene logische (ohne Optimierung!).

Eine weitere Möglichkeit die CQE zu beeinflussen, wäre das Ergebnis nach den ersten beiden Schlüsseln zu sortieren (sofern dies möglich ist).

Eventuell kann die Abfrage auch dadurch beschleunigt werden, dass bei der Tabellen/Datei-Auswahl die 2. Datei (für die ein Zugriffsweg verwendet wird) zuerst angegeben wird (sofern über GLEICH verknüpft wird). GGf. selektiert der Optimzer dann schon entsprechend vor und verwendet für die 2. Datei auch einen Index.

Ansonsten gibt es, sofern zusätzliche Zugriffswege nicht erlaubt sind wenig Möglichkeiten.

Birgitta