[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zunächst einmal, was ist eine View?
    Eine View ist nichts anderes als ein gesichertes SQL (SELECT) Statement. In einer View kann alles hinterlegt werden, was in einem SELECT-Statement zulässig ist, mit Ausnahme des ORDER BY.
    Eine View ist immer ungeschlüsselt (deshalb ist auch der ORDER BY nicht zulässig).
    Mit Hilfe von Views kann die Komplexität vom Programmen reduziert werden, da der komplexe SQL Code in einer View versteckt ist und auch in mehereren Programmen verwendet wird.
    Bei der Ausführung/Verwendung einer View wird das gesicherte SELECT-Statement vom Optimizer aufgelöst (also an die Stelle gesetzt, an der die View aufgerufen wurde) und dann erfolgt die eigentliche Optimierung.
    Das schöne bei SQL ist, die Sätze werden gefunden. Ohne die geeigneten Zugriffswege (Indices, geschlüsselte logische Dateien) wird erfolgt ein Table Scan (alles Sätze in der Tabelle/physichen Datei werden gelesen) oder wenn es keine andere Möglichkeit gibt, wird ein MTI (maintained Temporary Index) erstellt. Beides ist zeitaufwändig.
    Views können überall verwendet werden, wo Tabellen oder Physische Dateien verwendet werden. Auch mit Native I/O. Da Views immer ungeschlüsselt sind und der Optimizer entscheidet, macht die Verwendung von Views mit Native I/O nur dann Sinn, wenn die Daten in keiner bestimmten Reihenfolge verarbeitet werden müssen.
    Da SQL unheimlich mächtig ist, sind View ein gutes Mittel um Komplexität zu verstecken und um den Source Code (der ggf. in mehreren Programmen, die ggf. auch in unterschiedlichen Programmiersprachen geschrieben sind) zu minimieren und die Logik an einer Stelle (in der View) zu zentralisieren, was wiederum die Wartung vereinfacht.
    Views sind jedoch kein Mittel um die Verarbeitungsgeschwindigkeit zu beeinflussen. Dazu sind entsprechende Zugriffswege erforderlich.
    Es ist natürlich auch möglich in eine View zu schreiben (wie in eine logische Datei - mit native I/O und SQL), solange, die View nur auf eine Tabelle zugreift und keine Joins oder Group Bys o.ä. enthält, die eine View nicht mehr "updatable" macht.

    Du kannst natürlich auch eine View in einem INSERT Statement verwenden also z.B.:
    INSERT into View2 as (SELECT ... from VIEW1)
    ... aber Du kannst keine View um ein INSERT-Statement bauen. Eine View basiert immer auf einem SELECT-Statement.

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    "Der Kollege kam jetzt auf die Idee: Dann mach doch für jedes Einspielprogramm eine eigene Logische, dann geht das schneller und keiner muss auf den anderen warten und es staut sich weniger."

    Wie kommt der auf so eine Idee?
    Dies ist so auf der IBM i nicht möglich. Es können gleichzweitig 1000de Jobs in eine Tabelle/PF schreiben ohne dass irgend ein Job warten muss.
    Wenn der Kollege den Microsoft SQL-Server meint, dann kommt es bei sog. Snapshot-Transactions zu Tablelocks, die tatsächlich jeden anderen Zugriff blockieren, bis die Transaktion abgeschlossen ist (LOck-Escalation)

    Welchen Vorteile soll das also bringen, zumal alle Views diesen Zwecks auf dieselbe Tabelle/PF verweisen.

    Daher wiederhole ich obige Frage:
    Welches Problem habt ihr tatsächlich und wie drückt sich dieses aus?
    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. Bei Dateierstellung per SQL wird eine View gelöscht
    By Jenne in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 19-12-19, 17:49
  2. Antworten: 10
    Letzter Beitrag: 26-11-19, 13:53
  3. Antworten: 4
    Letzter Beitrag: 19-07-16, 11:44
  4. Eine Marke, eine Halle, eine Messe: IT & Business - Ende September in Stuttgart
    By Isabella Pridat-Zapp in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 10-09-15, 12:50
  5. Parameter dynamisch behandeln ( CL )
    By cimbala in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 20-05-08, 15:31

Berechtigungen

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