[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    sql performance einzelsatz / group by

    Hallo *all
    Hier gab es folgendes Statement:

    Code:
    with a as (select key1, key2, key3, dajj, damm, datt,   
            stor from FILE1 where rgma = 140850022                 
                          and (bank = 9 and stgr not in(0, 1, 91)   
                               or bank <> 9) and stat = 9           
    and zahl < 0  and kzze = 1                                      
    )                                                                   
    select sum(zahl), count(*)
              from file1 where                
           (key1, key2, key3, dajj, damm, datt, sanr) in  
    (select key1, key2, key3, dajj, damm, datt, stor      
                                                               from a)  
                                  and kzze = 1
    das läuft auf 25 Mio Datensätze 3-5 Sekunden

    mache ich aus dem
    Code:
    with a as (select key1, key2, key3, dajj, damm, datt,   
            stor from FILE1 where rgma = 140850022                 
                          and (bank = 9 and stgr not in(0, 1, 91)   
                               or bank <> 9) and stat = 9           
    and zahl < 0  and kzze = 1                                      
    )                                                                   
    select key1, key2, key3, zahl 
              from file1 where                
           (key1, key2, key3, dajj, damm, datt, sanr) in  
    (select key1, key2, key3, dajj, damm, datt, stor      
                                                               from a)  
                                  and kzze = 1
    läuft das ding > 45 minuten

    muß er für SUM(Zahl), nicht auch alle passenden lesen?
    LF mit key1, 2, 3 gibt es
    wieso lauft das so lange

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

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... weil es einen anderen Zugriffsplan berechnet (ich würde da nach Altvätersitte das unter debug laufen lassen und mir die diagnostics ansehen). Alternativ könnte man auch die Join Variante ausprobieren, da ist weniger Raum für exotische Einfälle des Query Pessimizers.

    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/

Similar Threads

  1. System Performance Analyse und Performance Tuning
    By Bernstein in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 05-08-14, 17:34
  2. Antworten: 12
    Letzter Beitrag: 13-06-14, 13:33
  3. starten Group Job in einer Interaktiven Session "vom aussen"
    By OMi in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 17-02-14, 14:44
  4. IFS-Performance
    By NorBo in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 29-04-03, 15:12
  5. Performance
    By mk in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-06-02, 09:32

Berechtigungen

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