[NEWSboard IBMi Forum]
Seite 2 von 3 Erste 1 2 3 Letzte
  1. #13
    Registriert seit
    Jan 2008
    Beiträge
    58
    Ich werde es zuerst in einer Testumgebung ausprobieren, thanks.

  2. #14
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die einmalige Zeit der Indexerstellung steht ggf. der Summe der eingesparten Laufzeiten gegenüber. Dabei spielt die Größe des Index keine Rolle.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #15
    Registriert seit
    Jan 2008
    Beiträge
    58
    Ich habe eine Sache dabei vergessen - die Datumsfelder kann ich nur unter bestimmten Bedigungen aus einer Stelle rausschneiden - also ein Index für die ganze Datei entfällt; man kann kein "where" im Index haben. Sonst wäre es richtig so:
    CREATE INDEX TEST/TESTIDX
    ON TEST/TESTPF
    ( (SUBSTR(TEXT, 25, 4)) CONCAT
    (SUBSTR(TEXT, 22, 2)) CONCAT
    (SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )
    RCDFMT TESTPFF1 ADD ALL COLUMNS
    Habe ich mit einer vorselektierten Test Datei ausprobiert.

  4. #16
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    CREATE INDEX TEST/TESTIDX
    ON TEST/TESTPF
    ( (SUBSTR(TEXT, 25, 4)) CONCAT
    (SUBSTR(TEXT, 22, 2)) CONCAT
    (SUBSTR(TEXT, 19, 2)) AS DATECHAR ASC )

    WHERE ...........

    RCDFMT TESTPFF1 ADD ALL COLUMNS
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #17
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    WHERE-Bedingungen sind bei Indices erlaubt.
    Wie sieht denn Deine Syntax mit der WHERE-Bedingung aus?

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #18
    Registriert seit
    Jan 2008
    Beiträge
    58
    Hallo Birgitta,
    Es könte so ausehen (ausprobiert):
    CREATE INDEX TEST/TESTIDX1
    ON TEST/TESTKOPF
    (DIGITS (SUBSTR(TEXT, 21, 4)) CONCAT
    DIGITS (SUBSTR(TEXT, 18, 2)) CONCAT
    DIGITS (SUBSTR(TEXT, 15, 2)) AS DATECHAR ASC )
    WHERE POSSTR(TEXT, 'DISPONIERT') > 0
    and SATZ_KZ = 'STATI'
    and LIEFNR < 990000000
    RCDFMT TESTKOPFF1 ADD ALL COLUMNS
    - aber wie kann diesen Index nutzen ? Direkt selektieren geht damit nicht.

  7. #19
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Ich dachte Du wolltest mit native I/O und nicht mit SQL zugreifen!
    Native I/O kann SQL-Indices wie jede geschlüsselte Datei verarbeiten.
    (In SQL kann/darf man einen Index nicht direkt angeben! Der Optimizer sucht sich den Zugriffspfad)

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #20
    Registriert seit
    Jan 2008
    Beiträge
    58
    Geht das in RPG ? Sorry, wusste ich nicht - ich probiere es aus, danke.

  9. #21
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Bei den berechneten Indizes steht man vor dem Problem, dass der Optimizer diese nur verwendet, wenn man genau die selben Informationen, also hier den Concat und die Whereklausel, in einem SQL verwendet.
    Weicht man auch nur in kleinster Weise davon ab, wird der Index nicht verwendet und SQL sucht sich was anderes.

    Also dies könnte dann klappen:

    SELECT * FROM TEST/TESTKOPF

    WHERE
    DIGITS (SUBSTR(TEXT, 21, 4)) CONCAT
    DIGITS (SUBSTR(TEXT, 18, 2)) CONCAT
    DIGITS (SUBSTR(TEXT, 15, 2)) = 'XXXX'
    AND POSSTR(TEXT, 'DISPONIERT') > 0
    and SATZ_KZ = 'STATI'
    and LIEFNR < 990000000
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #22
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von a.wojcik Beitrag anzeigen
    Geht das in RPG ? Sorry, wusste ich nicht
    Das wissen die wenigsten.
    Tatsache ist, dass die Erweiterungen in der Index-Definition (Spalten-Auswahl, zusätzliche Spalten udn WHERE-Bedingungen) in Release 6.1 in erster Linie für native I/O eingeführt wurden.
    Erst mit Beginn von Release 7.1 werden in den Optimizer mehr und mehr Erweiterungen eingebaut, so dass auch SQL diese Indices optimal nutzen kann.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  11. #23
    Registriert seit
    Jan 2008
    Beiträge
    58
    Hallo *All,
    den Index habe ich erneut erstellt und mit dem SELECT von Fuerhau ausprobiert - ist suoer schnell.
    Später probiere ich den Index im Programm aus.

    Danke für Eure Unterstützung !
    Schönes Wochenende
    AW

  12. #24
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Seit wann macht SQL etwas "in erster Linie für native I/O" ?
    Meine Erfahrung ist, SQL macht was für SQL.

    Wenn man nur native I/O programmiert kommt man doch gar nicht auf die Idee, dass SQL was dafür bereit hält.
    Also ich denke, dass ist eher schlechtes Marketing.
    Dieses Concat-Gedöns (vor allem bei Datumsfeldern) dient ja nur der optimalen Nutzung von Between-Vergleichen, da dies mit Einzelfeldern nicht funktioniert.

    In anderen DB's gibt es z.T. schon länger "calculated Indices" die von der SQL-Engine auch gut genutzt werden konnten, eben nach obigen Kriterien.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL CONCAT
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 27-01-22, 12:41
  2. Funktion die ich vermisse
    By AS400.lehrling in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 4
    Letzter Beitrag: 20-10-15, 20:24
  3. Funktion für Feldeintrag
    By H.V in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 20-09-02, 16:00
  4. Frage zur Formatierung mit Funktion DIGITS in QRY
    By hs in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 14-02-02, 06:30
  5. SQL Funktion " Like"
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-01-02, 16:08

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •