Hallo zusammen,

ich lese mir aktuell ein Buch über die DB2 durch.
Das Buch ist sehr gut, nun bin ich leider auf etwas gestoßen was sich mir nicht erschließen mag.

Folgendes Beispiel:
1. Mit den SQL Befehlen
CREATE INDEX I_PLZ ON ITPSQL.ORT(PLZ);
CREATE INDEX I_LKZ ON ITPSQL.ORT(LKZ);

wird ein Index gesetzt welcher sich jeweils als logische Datei darstellt. Soweit ja einfach.



2. Jetzt geht das Buch hin und erstellt zwei Select Abfragen:

select * from itpsql.ort where plz = ‚83646‘;
select * from itpsql.ort where LKZ = ‚40‘;



3. Laut dem Buch wird bei der ersten Abfrage der Index verwendet, bei der zweiten jedoch nicht.


Ich zitiere mal:
„Sie sehen, obwohl die Abfragen fast identisch sind und für beide Abfragen ein Index zur Verfügung steht, fällt die Ausführung unterschiedlich aus!“

Mehr Infos stellt das Buch leider nicht zu Verfügung.

Meine Frage:
Gibt es sozusagen „Regeln“ an denen man sich orientieren kann ob ein Index, der mittels SQL erstellt wurde, verwendet wird oder nicht?

Danke im Voraus für Antworten.

Grüße