[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.794
    Das ist keine Anwendung für eine VIEW wenn du auf die View auch noch einen Select losläßt.

    Concats im Join führen fast IMMER zu einem Tablescan, was die Laufzeit erklärt.

    Hier streikt auch der Optimizer, da erst eine temporäre Tabelle (bzw. Index) für die View gebildet werden muss und erst DANACH die Daten selektiert werden.

    case when t3.TEXT1G is null then ' ' else t3.text1g end

    Besser "coalesce(TTEXT1G, ' ')"

    Ein Typecast ist da nicht erforderlich.

    Und nun überlege dir, wie du an Stelle der View den Select im Programm direkt aufbaust (s.o.) udn gezielt die Where-bedingungen berücksichtigst.
    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

  2. #2
    Registriert seit
    Oct 2002
    Beiträge
    17
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das ist keine Anwendung für eine VIEW wenn du auf die View auch noch einen Select losläßt.
    Jetzt bin ich verwirrt!

    Für mich war bis jetzt DAS der klassische Fall für eine View:
    Ich habe
    - mehrere Tables
    - die ich zusammenhänge
    - und über SQL-Statements kreuz und quer selektieren kann.

    Oder habe ich da irgendwo etwas missverstanden?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.794
    Wenn eine View bereits WHERE enthält und Joins Typecasting (auch concat) enthalten ist das die denkbar schlechteste Lösung.
    Bei kleinen Datenbeständen mag das noch angehen und performant sein.

    Bei diesen Datenbeständen jedoch ist das die Katastrophe (wie du ja selber merkst).

    Views sind dann sinnvoll, wenn klare 1:N (n=1-32)-Beziehungen über fixe Schlüssel vorhanden sind.

    Alles andere ist dann eher Anwendungslogik.

    Zumal über Views kein Index angelegt werden kann !

    Allerdings:
    Whereklauseln sind nicht unbedingt von Nachteil.
    Und:

    Zerlege die

    t1.LGNT1G||t1.SCPB1G||t1.CMPN1G = '000000'

    in

    t1.LGNT1G = '00' and t1.SCPB1G='00' and t1.CMPN1G = '00'

    Da wird dann direkt selektiert und nicht erst ein temporärer Index benötigt.

    PS:
    Wobei ich da keine Joinbeziehung erkennen kann.
    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. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 11:15
  2. SQL Performance
    By mariupol1963 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-08-06, 14:06
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  4. Ferne SQL Analyse / Performance
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 16-08-05, 09:56
  5. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 19:38

Berechtigungen

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