[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2002
    Beiträge
    1.121

    SQL View mit Index/Key

    Hallo Gemeinde,

    bei einer DDS-Beschriebenen Logischen Datei kann ich ja einen Key angeben und gleichzeitig Sätze aus der PF selektieren. Bekommt man sowas auch mit einer SQL-View hin?

    PF-File
    PHP-Code:
                    R RECORD           
                      FELD1          3A
                      FELD2         10A
                    K FELD1 
    LF-File
    PHP-Code:
                    R RECORD                    PFILE(TESTPF
          *                                                   
                      
    FELD1          3A                       
                      FELD2         10A                       
          
    *                                                   
                    
    K FELD2                                   
          
    *                                                   
                    
    S FELD1                     COMP(EQ 'AAA'
    Oder bleibt mir dann nur die Möglichkeit im RPG mit embedded SQL zu arbeiten?

    Gruß
    Ronald

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    View ist immer ohne Index,

    also
    create view mit ... where Feld1 = 'AAA' erstellen
    create index ... aud Feld2

    Wobei in der 'einfachen' Kombination würde ich den Index auf Feld1 + Feld2 legen
    und den View select auf 'AAA' weglassen.
    Beim Zugriff kann ich das AAA selektieren und hab weiter Möglichkeiten

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Eine View beschreibt nur die Sicht auf Daten, ein Index erleichtert den Zugriff auf Daten.
    SQL ist mit DDS in keiner Weise vergleichbar, zumal der Optimizer (schon mehrfach diskutiert) später sowieso SQL's umbaut um schnellere Ergebnisse liefern zu können.
    Daher erlaubt eine View weder einen Index noch einen Order By.
    Aus Berechtigungsgründen kann man durchaus eine Where-Klausel einbauen um für bestimmte User/-Gruppen die Sicht der Daten einzuschränken.
    Leider wird aber zur Laufzeit zwar die Where-Klausel dann mit in die Ausführung übernommen, aber die Entscheidung über die Verwendung eines Index kann dann wieder eine ganz andere sein.
    Beispiel:
    Für einen Fall habe ich eine View mit der Selektion auf einen Mandanten (Firma/Werk) erstellt.
    Wenn ich nun auf diese View einen "select * from MyView where T1='X'" mache, führt dies zu einem Tablescan, obwohl für den Mandanten und das Feld T1 ein Index (Firma/Werk/T1) vorhanden ist.
    Ergänze ich nun den SQL mit "select * from MyView where Firma='A' and Werk = 'B' and T1='X'" verwendet der Optimizer nun den vorhanden Index.
    Nun sieht das halt für mich so aus, dass die Ergänzung des umgebauten SQL's mit der Where-Klausel aus der View erst nach der Analyse und der Entscheidung der verfügbaren Zugriffspfade erfolgt.

    Fazit:
    Auch wenn eine View eine Where-Klausel enthält entbindet mich das u.U. nicht davon, den Where-Ausdruck in meiner Abfrage auf die View zu wiederholen um eine performante Abfrage zu erhalten.
    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

  4. #4
    Registriert seit
    May 2002
    Beiträge
    1.121
    Danke für die Antworten,
    ich dachte ich kann mir da schnell mal eine logische basteln. Die Datei um die es geht, ist aus Femdsoftware. Sonst konnte ich da mit einem Chain drauf und hatte meinen Satz. Neu ist nun, das für einen Zugriff mehre Sätze da sein können. Wovon aber nur einer gültig ist. Ich dachte, ich könnte mir das einfach machen, indem ich mir meine logische selber bastle, und das Programm nicht großartig ändern muss.
    Ich werde aber nun doch das PGM ändern und gleich per SQL zugreifen.

    Gruß
    Ronald

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Auch für die Gültigkeit gibt es doch meist (z.B.Datum) dann die Möglichkeit per SETLL/READE genau den einen Satz zu bekommen.
    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

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.121
    Oder so.
    Ich dachte nur ich kann schnell mal mit SQL eine Sicht basteln und im PGM nur die Datei austauschen...

    Gruß
    Ronald

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... für die Schmuddelkinder geht auch ein Index mit where Klausel, den kann man mit Rekord Löffel Ekzem verarbeiten (würg - wo ist mein Eimer)

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Hier ein Artikel zu dem Thema (selbst auf die Gefahr hin, dass Dieter das Große Kotzen bekommt).

    SQL indexes and native I/O – no contradiction

    Birgitta
    Birgitta Hauser

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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... da brauchts schon mehr, um mich zu einem SBMLNC (Submit Lunch) zu bewegen
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Hier ein Artikel zu dem Thema (selbst auf die Gefahr hin, dass Dieter das Große Kotzen bekommt).

    SQL indexes and native I/O – no contradiction

    Birgitta
    Listing 15 war genau das, was ich gesucht habe.
    Danke
    Gruß Ronald

Similar Threads

  1. Antworten: 4
    Letzter Beitrag: 19-07-16, 12:44
  2. SQL - Index als LF erstellen
    By _MG_ in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 24-05-16, 10:49
  3. LF / SQL index
    By woodstock99 in forum NEWSboard Programmierung
    Antworten: 31
    Letzter Beitrag: 18-03-15, 14:29
  4. Cobol View und Index (V5R4)
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 29-12-14, 13:01
  5. Create Index
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 06-11-13, 12:44

Berechtigungen

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