Einzelnen Beitrag anzeigen

Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
329 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

SQL Sauert zu lange

  Alt 23. Jun 2016, 06:24
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBX
Hallo Delphianer,
ich habe ein Problem mit einem Select. Deshalb habe ich hier unten mal einen Auszug als dem Select eingestellt. Das Problem liegt hier bei or (UrMaster.referenznr = 'ABT_25' ).

Auf allen Feldern in der Where liegt ein Index auch auf der RefernzNr.

Wenn ich das ganze ohne die letzte Zeile mache mache dauert es ca. 2 Sekunden. Mit dieser Bedingung dauert es ca. 22 Sekunden. Wenn ich das danze richtig deute (bei IBExpert) wird hier der Index nicht benutzt.

Ich muss die Joins so machen da ich daten aus den entsprechenden Tabellen benötige.

Kann mit jemand von Euch hier helfen ?

Danke schon einmal Tanja

Delphi-Quellcode:


from MASTER
Left Outer JOIN SLAVE on MASTER.Vorgangsnummer = SLAVE.Vorgangsnummer and (SLAVE.ZusatzStatus = 'EZor SLAVE.ZusatzStatus = 'EVor
                                                                    SLAVE.ZusatzStatus = 'EFor SLAVE.ZusatzStatus = 'EAor
                                                                    SLAVE.ZusatzStatus = 'EQor SLAVE.ZusatzStatus = 'EP')
Left Outer Join MASTER UrMaster on MASTER.Vorgangursprung = UrMaster.Vorgangsnummer
where MASTER.Status = 'In Bearbeitung'  and SLAVE.SlaveNummerr is not NULL
and ((SLAVE.SlaveStatus = 'Wartenor SLAVE.SlaveStatus = 'Unterbrochenor
      SLAVE.SlaveStatus = 'In Arbeitand SLAVE.Dzusatz is NULL) or
     (SLAVE.SlaveStatus = 'In Abreitand SLAVE.Dzusatz = 'Gesperrtand
      SLAVE.Sollende < Current_Date)
    )

    and
    MASTER.FATW = 'Aktive'
and (((MASTER.AltesSystem like 'Start%or MASTER.AltesSystem like 'Vorgang%' )
       and MASTER.AltesSystem not like '%Abbruch%and MASTER.Storno is null
     )
    or (UrMaster.referenznr = 'ABT_25' ) )
Tanja
  Mit Zitat antworten Zitat