[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2002
    Beiträge
    164

    sql-Performance

    hallo Leute,
    bitte um Hilfe bei sql-Performance-Problem.
    Es geht um eine vielfach benutze select-Abfrage
    über DDS-erstellte logische Dateien.
    Mir ist bekannt, dass sql die Sortierfolge dieser Logischen Files ignoriert. sql baut sich bei jedem Aufruf seine eigenen Sichten auf.
    (Für Datei xy wird ein Zugriffspfad erstellt...)
    Es wäre doch von Vorteil, mit CREATE INDEX dem vorzukommen.

    Aber wie kann ich diesen Index im select-Statement angeben?

    Vielen Dank.
    RR

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    SQL verwendet auch DDS erstellte Zugriffspfade, wenn sie denn weiter helfen! SQL Statements werden immer auf Views (oder Tables) abgesetzt, dann berechnet die Query Engine einen Zugriffsplan, in dessen Berechnung alle bestehenden Zugriffspfade einbezogen werden, passt keiner, wird einer erstellt oder ein Full Table scan ausgeführt.
    Setzt man den Job unter Debug, wird all dies im Joblog protokolliert, inklusive Empfehlungen für anzulegende Indexe.

    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/

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Wie Dieter schon sagt:
    1. Baue das SQL-Statement basierend auf den physischen Dateien auf oder erstelle eine View, in der die Verknüpfungen der physischen Dateien hinterlegt sind und in der die Select/Omit-Anweisungen als Where-Bedingung ausgegeben werden.
    2. Führe Dein SQL Statement mit dem iSeries Navigator aus
    (iSeries-Navigator öffnen --> Datenbanken --> Datenbank auswählen --> In Kasten rechts unten "Eine SQL Prozedur ausführen " auswählen --> Über JDBC-Setup Bibliotheksliste und Naming setzen --> das SQL Statement eingeben und mit Visual Explain ausführen.
    3. Visual Explain sagt Dir u.a. ob und welcher Index erforderlich ist. Viel interessanter aber ist, zu wissen mit welcher Query-Engine das SQL-Statement ausgeführt wird.
    Klicke auf Final Select und schaue auf die letzten Einträge auf der rechten Seite.
    Sofern die Abfrage von der SQE (SQL Query Engine) ausgeführt wird, prüfe den Index-Advice und lege ggf. die erforderlichen Zugriffswege an. Sofern die Abfrage von der CQE (classic query engine) ausgeführt wird, sagt er Dir auch warum. Da Du aktuell auf logische Dateien zugreifst, wird unweigerlich die alte CQE verwendet! Versuche die Abfrage auf die SQE zu portieren und erstelle anschließend die erforderlichen Indices.

    STRDBG bringt nur einen Teil der Informationen, die Visual Explain ausgibt, so kannst Du z.B. nicht feststellen welche Query Engine die Abfrage ausgeführt hat.

    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

  4. #4
    Registriert seit
    Feb 2002
    Beiträge
    164
    hallo Brigitta,
    vielen Dank für deine Ausführung.

    Da es sich um ein sql-Statement in der Länge einer DIN-A4-Seite
    handelt: wo kann ich in Visual Explain sehen,
    wo bei der Ausführung des sql-Statements die meiste Maschinenzeit verwendet wird?

    Danke.
    RR

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Jeder Node/Step enthält ein Haufen an Informationen.
    Bei "Estimated Time Information" siehst du wie lange dieser Prozess gedauert hat.

    lg Andreas

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL Performance
    By mariupol1963 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-08-06, 13:06
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. Ferne SQL Analyse / Performance
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 16-08-05, 08:56
  5. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 18:38

Berechtigungen

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