Thema: Delphi Query-Optimierung

Einzelnen Beitrag anzeigen

alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#7

Re: Query-Optimierung

  Alt 6. Okt 2007, 12:01
Hallo Heiko,

Mich wundert ein wenig, dass du zwar ein EndDate hast, dieses aber nicht auswertest.
Für der 22.01.2007 wäre laut deinen Daten PersonalId=1 in keiner Gruppe.

Wenn das EndDate keine Rolle spielt, warst du doch schon auf dem richtigen Weg,
es fehlte nur das First 1 da du ja nur eine Satz zurück haben möchtest:

SQL-Code:
Select First 1
  *
From
  MyTable
Where
  (PersonalId=1) and (StartDate<='22.1.2007')
Order By
  StartDate Desc

mit Auswertung des EndDates:
SQL-Code:
select first 1
  *
from
  MyTable H
where
  H.PERSONALID = :PERSONALID
  and
  (H.STARTDATE <= :DATUM) and (:DATUM <= H.ENDDATE)
ORDER by
  H.STARTDATE desc
in beiden Fälle empfiehlt sich ein Index
CREATE DESCENDING INDEX MYTABLE_IDX1 ON MYTABLE (PERSONAL_ID, STARTDATE);


alex
Alexander
  Mit Zitat antworten Zitat