[gelöst]Performanceproblem mit Find

20. Mai 2020 11:50

Hallo,
ich habe folgenden Code
Code:
    ProdKalenderposten.RESET;
    ProdKalenderposten.SETCURRENTKEY("Work Center No.",Date);
    ProdKalenderposten.SETRANGE("No.",ArbeitsplatzgruppenFilter);
    ProdKalenderposten.SETRANGE(Topfdatum,Perioddatum);     
    ProdKalenderposten.SETRANGE(Type,ProdKalenderposten.Type::Produktiv);   
    ProdKalenderposten.CALCSUMS("Capacity (Total)","Capacity (Effective)");
    SumCapacityMinuteTotal := ProdKalenderposten."Capacity (Total)";
    SumCapacityMinuteEffictive := ProdKalenderposten."Capacity (Effective)";   
    IF ProdKalenderposten.FINDFIRST THEN
      StartingTime := ProdKalenderposten."Starting Time";
    IF ProdKalenderposten.FINDLAST THEN
      EndingTime := ProdKalenderposten."Ending Time";


Die Aufgabe ist, das ich die Summe der beiden Felder bekomme und den frühesten Startzeitpunkt bzw. den spätesten Endzeitpunkt.
Das funktioniert zwar, aber die beiden Abfragen (Findfirst und Findlast) machen es ziemlich langsam. Das ganze ist innerhalb einer Schleife.

Wie könnte ich hier eine Performance-Steigerung erzielen.

Danke und lg
stony
Zuletzt geändert von stony am 20. Mai 2020 12:36, insgesamt 1-mal geändert.

Re: Performanceproblem mit Find

20. Mai 2020 12:00

Hallo,

ich würde das Ganze mal mit einer Repeat-Until- Schleife versuchen.

Du greifst drei mal auf die Records zu 1. Beim Calcsums,2. beim Findfirst, 3. beim Findlast.

Evtl. bringt es etwas das mit einem FINDSET zu machen, sich am Anfang das Startdatum zu merken, dann mit Repeat-Until zu summieren, und am Ende das Enddatum zu übernehmen.

Wenn du es ausprobierst, bitte poste auch das Ergebnis des Versuchs hier. Das interessiert neben mir u.U. auch andere.

Gruß Fiddi

Re: Performanceproblem mit Find

20. Mai 2020 12:07

Gibt es in der Tabelle ProdKalenderposten einen Schlüssel, welcher (möglichst ganz vorne) die Felder "No.", "Topfdatum" und "Type" enthält?
--> Beschleunigt FINDFIRST und FINDLAST extrem

Enthält dieser Schlüssel die Felder "Capacity (Total)" und "Capacity (Effective)" in den SumIndexFields?
--> Beschleunigt CALCSUMS

Re: Performanceproblem mit Find

20. Mai 2020 12:36

Problem gelöst.
Lösung war der Vorschlag mit den Schlüssel.
Das Ding funktioniert nun wirklich schnell.