Skript beschleunigen
Hallo zusammen,
wie kann man das skript besser bauen, da es lange braucht? Ist für eine Ansicht. Datensätze ca 700 aufsteigend.
let aa := Jahr;
let bb := KW;
do as server
let cc := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 1;
let gg := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 + 6;
select 'Aufträge' where date(Kalenderdatum) = date(cc) or date(Kalenderdatum) < today() or date(Kalenderdatum) = date(gg)
end
5 Antworten
-
Hi Michi. Ich hab mir mal Dein Script heute angeschaut. Ganz schlau werde ich daraus nicht. Du willst alle Datensätze anzeigen die kleiner als today() sind und noch zwei Datensätze extra deren Datum Du bei cc und bei gg deklarierst. Also wenn das so sein soll, dann ist hier nicht so viel zu optimieren. Ich würde nur die Abfragereihenfolge ändern (wie unten) und mal vergleichen, wenn Du "do as server" wegläßt, weil es sein kann, dass es bei einer Ansicht nicht so optimal ist. Außerdem würde sich vielleicht ein Versuch mit "do as transaction" lohnen, wenn Du in einer App (Mac, IPhone,Android) arbeitest. Ob das die Laufzeit entscheidend verkürzt weiß ich nicht. Mirko
...
select 'Aufträge' where date(Kalenderdatum) = date(cc) or date(Kalenderdatum) = date(gg) or date(Kalenderdatum) < today()
...
-
Hallo Michi. Also gefühlt und ungeprüft stelle ich es mir so vor. Wenn es aber nicht klappt, bräuchte ich wahrscheinlich eine leere TestDB an level1(at)online.de. Habe aber nicht gleich Zeit. Mirko
for j in 'Aufträge' do j.('Info Text' := join( for i in (select Historie where 'Aufträge' = j and 'diesen Eintrag hervorheben ????' = true and 'Aktion oder Info text eingeben') order by -'Änderungsdatum' do "( " + i.'Änderungsdatum' + " > " + i.'Aktion oder Info text eingeben' + " )" end, " ")); end
Content aside
- vor 2 JahrenZuletzt aktiv
- 5Antworten
- 92Ansichten
-
2
Folge bereits