-
Create Index
Hallo,
ich lese mit Sql in einem Sfl ein.
Leider braucht das einlesen sehr lange.
Vor langer Zeit habe ich mir mal notiert wie man einen Index erstellen kann:
Code:
CREATE INDEX MYLIB/INDEXNAMEN
ON MYLIB /MYFILE (Feld)
WITH 1 DISTINCT VALUES
Kann mir jemand bitte erklären wie ich für folgendes Statement einen Index erstelle?
Code:
SELECT X3KZ4, X3ZDAT, X3FDAT,
COUNT(DISTINCT(X3ORT1)),
COUNT(DISTINCT(X3 ORT2)),
COUNT(Y3ART1)
FROM ZX3F, ZY3F WHERE X3NUMM = Y3NUMM
GROUP BY X3KZ4, X3FLD5, X3ZDAT, X3FDAT
ORDER BY X3KZ4, X3ZDAT DESC, X3FDAT
Dank im Voraus
Tarki
-
Die einfachste Methode ist immer vor dem SQL einen STRDBG auszuführen und den Hinweisen des Joblogs zu folgen.
Die Frage ist, warum du mit ZY3F joinst ohne ein Feld zu benötigen.
Wenn Y3NUMM nicht eindeutig ist werden erheblich mehr daten Verarbeitet als benötigt.
Du benötigst auf jeden Fall einen Index über Y3NUMM.
An Stelle des Joins wäre dann ein
where exists (select * from ZY3F where X3NUMM=Y3NUMM)
vollkommen ausreichend.
Für ZX3F brauchst du keinen Index, da du ja keine Bedingung hast und somit einen Tablescan provozierst.
Ob der SQL mit einem Index über die Group-Felder schneler ist kann ich nicht sagen.
Ggf. hilft da ein Index über die Order-Felder.
-
Hallo,
ich muss aber die Anzahl der Artikel zählen: COUNT(Y3ART1)
deshalb kann ich die where exists Klausel nicht verwenden.
Ich werde mal debuggen und den Joblog lesen.
Danke
-
Stimmt, habe ich überlesen.
-
Im joblog habe ich leider nicht rauslesen können
:
:
1 Zeilen von Cursor CSRC1 abgerufen.
ODP wiederverwendet.
ODP nicht gelöscht.
Eingebettetes SELECT beendet.
ODP wiederverwendet.
ODP nicht gelöscht.
Eingebettetes SELECT beendet.
ODP wiederverwendet.
ODP nicht gelöscht.
:
:
Wie müsste eigentlich der Index für die order Felder lauten?
Habe leider noch nie einen Index erstellt.
Erstelle ich den nur einmalig?
Danke im Voraus
-
Da müssen noch erheblich mehr Hinweise davor im Joblog stehen.
Den Create Index hats du ja schon oben stehen.
Benötigst du mehr als ein Feld sind diesen in Klammern mit Komma getrennt aufzuführen.
Und ja, ein Index wird nur einmal erstellt und ist dann permanent.
-
An der Stelle ist das Kind schon in den Brunnen gefallen.
Du musst weiter nach oben gehen, wo die Zugriffswege geprüft werden.
Sofern ein Zugriffsweg empfohlen ist, wird dies im Joblog angezeigt. Mit F1 erhälst Du dann die Detail-Informationen.
-
Du kannst das ganze auch im iSeries Navigator machen. Dort hast du es etwas hübscher dargestellt.
Und dort siehst du dann auch wo genau es länger dauert (= wo ein Index nötig ist).
lg Andreas
-
Hallo Andreas,
leider benutzte ich den Navigator nicht, unter welchem Punkt finde ich das?
lg
Tarki
Similar Threads
-
By Sascha Storzum in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 19-08-02, 12:26
-
By Willi1 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-05-02, 08:38
-
By rebe in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 26-09-01, 15:25
-
By KB in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 24-07-01, 15:43
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 21-03-01, 13:44
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks