SQL-Code optimieren

Slater345

Grünschnabel
SQL-Code optimieren - Datensätze "zwischenlagern"/Performance

Hallo,

ich habe folgenden Code:
Code:
SELECT spalten
FROM tabelle 
WHERE (nummer= variable) AND 
(abwesenheitsnr = 1 OR abwesenheitsnr = 2) AND 
'variables_datum' 
  BETWEEN datumanfang AND datumende

Es handelt sich um die Anzeige, ob die Person mit der nummer x an dem entsprechenden Datum (variables_datum), was zwischen datumanfang und datumende liegt, abwesend ist mit einen der Arten (1 oder 2).

Falls ja, soll es angezeigt werden, ansonsten eben einfach leerzeichen. Benutzen tu ich es unter ASP.
Da diese Abfrage ständig wiederholt wird (z.B. 01.01.08 bis 31.12.08) und andere Benutzernummern erhält, dauert dies natürlich entsprechend lange (bei 2 Benutzern wären es bspw. rund 730x und das wäre eindeutig etwas viel *g).

Hat jemand vielleicht eine Idee, wie man diese Abfrage optimieren könne, so das sie flotter geht oder was man machen könnte für die Performance? Vom Prinzip her ist es ein Kalender der halt 12 Monate anzeigt für das jeweilige Jahr mit den entsprechenden Benutzern (welche aus AD ausgelesen werden).
Hoffe sehr auf Antworten.
Grüße
 
Zuletzt bearbeitet:
Oder anders gefragt...

.. wie wäre es am performantesten, wenn man viele Datensätze Abfragen muss?

(Zur Zeit lese ich die Benutzerdaten aus dem AD und die dazugehörigen Daten aus der SQL-Datenbank aus einer Tabelle).
Probierte es mit einem Array bei nur einem Nutzer und einem festgelegten Datum, allerdings mit mehreren Schleifendurchläufen (als wären es Monate+Tage) und da würde der Spaß schon rund 10 - 12 Sekunden dauern.
Also z.B.:
Code:
Schleife1 - 1 bis 12 Monate
 Schleife2 - 1 bis 29 Tage
   SQL-Abfrage
   Array (oder Ausgabe)
ende der Schleifen

Wie könnt man die Datensätze am besten "auslagern", so das ich nachher einfach Frage, ob Benutzer x am Tag y z.B. Urlaub hat? (Benutze ASP, daher weiß ich nicht ganz, ob es besser dort oder hier aufgehoben ist ;) )
Hoffe auf eine Antwort...
Grüße..
 
Zurück