[NEWSboard IBMi Forum]

Thema: create view

  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    create view

    Hallo *all,

    da create view nicht wirklich meine Domäne ist habe ich eine Verständnisfrage:

    Ich habe insgesamt 3 Dateien die ich in eine View bringen will.

    Die erste ist eine Adreßdatei die 2. und 3. jeweils Auftragsdaten.

    Ich habe die 2. und 3. so verknüpft:

    create view gregor/test01 as
    select * from aruakox1pf left outer join
    apo01pf on arfa = apfa and arabkz = apabkz and
    arfakt = apfakt and aranr = apanr and aruanr = apuanr
    and arpos = appos

    Das sieht auch schon ganz gut aus. Jetzt will ich das ganze mit der Adreßdatei verknüpfen.

    Der Umbau müßte dann sein
    create view gregor/test01 as select * from adr01pf where adkto = akid4 (select * from aruakox1pf left outer join
    apo01pf on arfa = apfa and arabkz = apabkz and
    arfakt = apfakt and aranr = apanr and aruanr = apuanr
    and arpos = appos)

    Wobei das akid4 in der aruakox1pf ist.

    Wie muß dann da bitte die richtige Syntax lauten?

    GG

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Probier mal:

    create view gregor/test01 as
    select * from aruakox1pf left outer join
    apo01pf on arfa = apfa and arabkz = apabkz and
    arfakt = apfakt and aranr = apanr and aruanr = apuanr
    and arpos = appos
    left outer join adr01pf on adkto = akid4

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Danke,
    das sieht doch mal gut aus.

    GG

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Syntax ist doch einfach:

    select *
    from file1
    left join file2 on ...
    left join file3 on ...
    :
    left join filex on ...

    Wobei die on-Beziehung sich durchaus z.b. von File2 nach File3 definieren läßt.
    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. #5
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    So ist das halt im Leben, was für den einen einfach ist, ist für den anderen unverständlich.
    Amüsiere mich halt recht wenig mit SQL.

    GG

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    Nachfrage

    Hallo *all,

    wenn ich das richtig sehe, ist eine view ja nichts anderes als eine logische Datei. Sprich jedesmal wenn in der phy. ein Satz geändert wird, muß die logische nachgezogen werden. Deswegen wollte ich den Wert maint auf *dly setzen.
    Er sagt mir aber das es keine Join-Datei wäre.
    Ich habe aber doch in meiner View 2 Joins drin, was versteht er bitte unter join was ich nicht verstehe?

    GG

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Eine Sicht (View) besitzt keinen Zugriffspfad.

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Eine Sicht (View) besitzt keinen Zugriffspfad.
    ... und steht deshalb IMMER auf Access Path Maintenance *REBLD.
    Im Klartext heißt das, dass Du "tausende" von Views auf der gleichen Datei haben kannst ohne Performance-Einbußen fürchten zu müssen.

    Die benötigten Zugriffspfade sind in den Indices hinterlegt. Der Query-Optimizer entscheidet ob und welche Zugriffswege (SQL Indices oder DDS beschriebene geschlüsselte logische Dateien) zur Ausführung der Abfrage (auch bei Angabe einer View) verwendet werden.

    Da die Zugriffswege nur in den Indices liegen, und diese bei jedem Insert, Update oder Delete auf die Basis-Datei aktualisiert werden müssen, beeinträchtigen "tausende" von Indices die Performance. Fehlende Indices oder Zugriffswege, sind aber of noch schlimmer, da Table Scans oder Table Probes durchgeführt werden müssen, oder im Extremfall sogar ein temporärer Index (mit allem Overhead) gebildet werden muss.

    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

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Auf Grund des fehlenden Zugriffspfades einer View enthält die View auch keine Sortierung (order by)!
    Die Sortierung muss beim Select selber angegeben werden, fehlt diese, entscheidet der Optimizer selber (je nach dem ob er einen Zugriffspfad verwenden konnte oder nicht).
    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. #10
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Hallo Birgitta, da ich ja nun vom Lesen weiß das Dir bei SQL keiner was vormachen kann, kannst Du evtl. nachvollziehen das es Leute gibt die nicht ganz so fit sind. Zum Thema: Du schreibst: "Im Klartext heißt das, dass Du "tausende" von Views auf der gleichen Datei haben kannst ohne Performance-Einbußen fürchten zu müssen. Die benötigten Zugriffspfade sind in den Indices hinterlegt." OK Dann schreibst Du: Da die Zugriffswege nur in den Indices liegen, und diese bei jedem Insert, Update oder Delete auf die Basis-Datei aktualisiert werden müssen, beeinträchtigen "tausende" von Indices die Performance. Häh?! Ohne es jetzt im Detail verstehen zu müßen, weil für mich widerspricht sich das, halte ich fest, eine View macht mein System nicht langsamer. BTW. Wo kann man so etwas nachlesen? GG

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da würde ich mal die SQL-Handbücher zu Rate ziehen, da habe ich auch meine Info's so her .
    Natürlich gibt's auch entsprechende Lehrgänge, wo man einiges erfährt, was leider nicht in Handbüchern zu finden ist.
    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

  12. #12
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Views und Indices sind zwei unterschiedliche Dinge.

    Hier gibt's die AS/400 SQL-Referenz von IBM.

Similar Threads

  1. CREATE VIEW
    By Franz Karl in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 20-01-07, 08:04
  2. create view oder constraint oder trigger oder ... ?
    By antvik in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 02-08-06, 18:04
  3. SQL -> CREATE VIEW
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 11-05-06, 14:57
  4. Create View über 3 Dateien
    By Mädele in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-08-05, 12:26
  5. UNION/UNION ALL beim CREATE VIEW
    By KB in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 24-07-01, 15:43

Berechtigungen

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