0

Performance bei ausgeblendeten DIAGRAMMEN

Großes Problem.. 

Habe in meinem Dashboard einige Statistiken, die ich mir unter bestimmten voraussetzungen anzeigen lasse. (diverse Auswahlfelder)
Jetzt merke ich, dass meine Datenbank aber sowas von in die Knie geht (performance mäßig), habe ca. 10 verschiedene Diagramme, wovon maximal 1-2 gleichzeitig eingeblendet werden. meist aber gar keines..

habe zum TEST einen Datensatz geändert, und die Datenbank (heuer z.b. 140 Einträge) berechnen lassen.. dazu werden die Einträge von heute gelöscht und neu angelegt.. 140, und einer ist neu. DAUER dieser Aufgabe (über eine Bedienschaltfläche) -> 11 MINUTEN

zum Test habe ich die gleiche Formel aus einer anderen Tabelle laufen lassen (in dieser befinden sich keine Diagramme) -> Dauer 7 Sekunden.

Das ist für mich ein Problem. Auch das Anlegen eines neuen Datensatzes aus dieser Diagramm Tabelle über eine Bedienschaltfläche dauert mehr als 10 Sekunden.

Nun eine Frage an Ninox und an die Spezialisten: Ist es Möglich Diagramme komplett zu disablen wenn sie nicht dargestellt werden. Die Performance hier ist momentan wirklich problematisch. Vielleicht kann man das auch in einem zukünftigen Update mit berücksichtigen.. 

hier die Formel, die 11 Minuten zur Abarbeitung braucht:

let myJAHRD := JahresZAHL;
let myYEAR := first((select 'C. Kassabuch')['KASSABUCH JAHR' = myJAHRD]);
switch dialog("AKTUALISIERUNG!", "Die Statistik Datenbank wird nun aktualisiert. Dies kann einige Minuten dauern. Sind Sie sich sicher?", ["Zurück", "Auswahl", "Alles"]) do
case "Auswahl":
myYEAR.do as server
let my := this;
delete Statistik[year(Termin) = my.year('Kassenbuchjahr auswählen: 01.01.xxxx') or year('Eingang/Ausgang am:') = my.year('Kassenbuchjahr auswählen: 01.01.xxxx')];
for a in select Dokumentation where year(Termin) = my.'KASSABUCH JAHR' do
let new := (create Statistik);
new.(
'Eingang/Ausgang am:' := a.'Eingang am:';
Termin := a.Termin;
Betrag := a.Gesamt_raw;
'Veränderung' := a.text('Veränderung');
Art := 1;
'C. Kassabuch' := my
)
end;
for b in select Ausgaben where year(Datum) = my.'KASSABUCH JAHR' do
let new := (create Statistik);
new.(
'Eingang/Ausgang am:' := b.Datum;
Betrag := b.Preis;
Art := 2;
'C. Kassabuch' := my
)
end
end
case "Alles":
myYEAR.do as server
delete (select Statistik);
let my := this;
for a in select Dokumentation do
let new := (create Statistik);
new.(
'Eingang/Ausgang am:' := a.'Eingang am:';
Termin := a.Termin;
Betrag := a.Gesamt_raw;
'Veränderung' := a.text('Veränderung');
Art := 1;
'C. Kassabuch' := my
)
end;
for b in select Ausgaben do
let new := (create Statistik);
new.(
'Eingang/Ausgang am:' := b.Datum;
Betrag := b.Preis;
Art := 2;
'C. Kassabuch' := my
)
end
end
end

1 Antwort

null
    • Morris_Hanson
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Okay. Ich habe nun alle Bedingungen für die Diagramme nun auch in die eigentliche Funktion und nicht nur in Anzeigen wenn.. eingefügt. und tatsächlich ist das das Problem. Es werden Berechnungen durchgeführt, auch wenn die Bedingungen in "nur anzeigen wenn" nicht erfüllt werden. Das ist gut zu wissen, wenn man mit sehr umfangreichen Datenbanken arbeitet.. LG

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 1Antworten
  • 1034Ansichten