Firebird SQL verbessern

freedamo

Benutzer
Beiträge
14
Hi!

Folgende Abfrage lässt die CPU unseres DB-Servers auf fast 80% ansteigen... es dauert einige Minuten bis er sich wieder erholt ;) .

Was kann ich hier optimieren - Außer dem Datum eingrenzen :D ?

Select BELEGTYP, BELEGART, BELEGNR, BELEGDAT, PERSONAL,
PERSNAME, KZAUSDRUCK
from BELEG
where (KZAUSDRUCK = '0'
or KZAUSDRUCK = 'N'
or KZAUSDRUCK = '')
and BELEGTYP = 'V'
and BELEGART in ('RE','GU','LI','MA')
and getdate(BELEGDAT) >= '01.01.2000'
order by BELEGDAT desc


Vielen Dank für eure Mühe!
 
Werbung:
Was sagt Expplain? Hat Firebird Explain?

Du solltest passende Indexe haben, die Spalten in der Where-Condition wären gute Kandidaten ...
 
Werbung:
Folgende Abfrage lässt die CPU unseres DB-Servers auf fast 80% ansteigen...
Ganz normal... Da eine Datenbank immer versucht Daten so schnell wie möglich zu liefern, werden natürlich auch alle verfügbaren Ressourcen verwendet...
Egal was du für ein Statement baust, das deine CPU eine hohe Auslastung hast wirst du nicht verhindern können... ;)

Das einzige was du machen kannst ist die Durchlaufzeit reduzieren...
 
Zurück
Oben