Datenbank Tuning Gedankenspiel
ich stehe aktuell vor einer Frage eine bestehende Dienstplanungsdatenbank zu optimieren.
Problem welches ich habe ist, dass Ninox ab einer gewissen Komplexität in die Knie geht wenn es Lokal betrieben wird..
Da ich mit "do as Server" leider nicht arbeiten darf außer zu Testzwecken muss ich eine andere Lösung finden..
Ganz einfaches Szenario.. zB wir haben 2000 Mitarbeiter nehmen wir an wir rechnen mit 1000 Mitarbeiter müssen über das Jahr verwaltet werden.
das sind in meiner Datenbank regulär 365.000 Datensätze mit dem Zustand D,F,U,K,S (Dienst,Frei,Urlaub,Krank,Sonstiges) wobei Sonstiges nochmals 10 Zustände haben kann.
Aktueller Mitarbeiterstand also über 730.000 Datensätze inkl Berechnung auf die ich im Moment gar nicht eingehen möchte.
seht ihr da eine Möglichkeit einer Reduktion dieses Monsters...
eventuell als Jahrestabelle oder als Textfeld in der die für jeden Tag die Position der D,F,U,K,S eingerechnet oder ausgelesen wird?
vG Martin K
12 Antworten
-
Hallo Martin,
das ist eine interessante Frage.
Am besten wäre es, wenn wir uns das einmal gemeinsam anschauen.
Ich habe Ihnen in einer separaten E-Mail eine Einladung gesendet, über deren Link Sie ein Screensharing mit uns vereinbaren können. Vielen Dank.
Gruß, Jörg
-
Vielen Dank für die Antwort, Hr. Hansen hat mir bei meinem Projekt schon sehr geholfen... ebenso der Hr. Semik aber das ist für ne 15Minuten Session zu schwer zu erklären und die beiden sind extrem firm nur ich bin eher ein schlechter Erklärbär :)
ich kämpfe mich da mal anfänglich mit der Theorie herum das ich das komplette Jahr in eine Textfeld berechnen lasse..
sprich Anfang des Jahres das Textarray mit 365 Stellen mit Werten befüllen lasse..
von 1.1- 31.12 jeden Tag quasi.
in der Syntax
D = Dienst
F = Frei
U = Urlaub
S = Sonstiges
für jeden zweiten Tag bei 24h Wechseldienst ein = _
D_D_D_D_D_D_D_D
um übers Jahr draus
D_D_D_F_F_D_DUUUUUD_D_D_K_K_K_D_D_D_S_D_D
zu errechnen.
Ich bin auf der Suche nach der Syntax um in ein Textfeld an einer gewissen Position etwas lesen und auch etwas schreiben zu können mittels Button
ich habe keinen gefunden..
Viele Grüße
-
Mit Copytexter und Leonids Hilfe ist der Grundstock gelegt.
Jetzt werde ich mal schauen wie sich das in der Größe verhält
-
Ich weiß nicht, ob es am Ende funktionieren wird, aber den Ansatz, die Diensteinträge für jeden Tag in einem einzigen Textfeld zu speichern statt in vielen einzelnen Datenfeldern/-sätzen, finde ich sehr interessant. Halt uns auf dem Laufenden. ;)
-
Guten Morgen, ja das wird die Frage sein und ist auch nur ein Experiment weil ich wie oben beschrieben ziemlich am Limit bin und die Sache sehr zäh wird.. interessant wird es auch sein wie ich dabei die Ansicht und die Auswertung hin bekomme... PDF usw.. lesbar..;) mit der obigen Ansicht ist kein Krieg zu gewinnen ...
-
Habe jetzt ein bisschen rumprobiert. Anlegen von 365 Datensätze dauert bei der App ca. 2. Sekunden. Bei 2000 Mitarbeiter macht es mehr als eine Stunde beim Anlegen der Jahresdaten. Bei Textfelder sehe ich das Problem bei der Auswertung. Meine Idee wäre es, die Tage mit Dienst gar nicht zu erfassen. Die Datenmengen werden dann drastisch runtergehen. Wenn die Auswertungen pro Mitarbeiter durchgeführt werden dann kann man die 2 Sekunden schon verkraften.
Leo
-
Schon eine spannende Geschichte das ganze.. Tage mit Dienst muss ich erfassen aus verschiedensten Gründen.
als Besipiel
ich muss alle aufeinanderfolgenden Dienste summieren lassen rückwärts quasi.
Ist die Person öfter im Dienst gewesen als 7 x sprich 15 Tage MUSS er FREI gehen und der Counter geht auf NULL wenn er wirklich frei geht..
Selbiges mit Krank ist er 8 x Krank muss ihm ein Freier Tag abgerechnet werden von seinen ihm zustehenden Max 48
und auch die müssen permanent nachberechnet werden.
Zu den Diensten kommt noch dazu das er über das Jahr eine gewisse Anzahl braucht um in der Pensionsrechnung nicht ein Jahr zu verlieren aliquot ..
was aber noch viel wichtiger ist, ich muss min. zwei Monate voraus planen und nun kommt’s... der Urlaub tut das übrige..
und noch viel wichtiger.. ich muss alle Einasatzfahrzeuge nach Ausbilung(Rang) fix besetzen.. da gibt es kein KFZ was unbesetzt bleiben darf..
ich mache das aktuell nur für 15 Fahrer meiner Sektion in meiner Dienstgruppe und Lokal und in der icloud wirds schon zäh
Schreibe mit dem Vorschreibe Button zwei Monate vor und die den letzten zurückliegenden exportiere ich als CSV undlösche danach die unnötigen Datensätze .
-
noch eine Frage Leonid, deine rund 730.000 Datensätze sind in einer Tabelle zusammengefasst ?
-
Nein, ich habe nur n:m Tabelle aufgebaut und mit ein Paar Mitarbeiter ausprobiert. Für eine Stunde Warten für alle Datensätze hatte ich keine Zeit.
-
Ach so,.. das mit der Stunde würde in jedem Fall mehr sein das sich die Zeiten bei mir exponentiell verlängern je mehr Personen angelegt werden.
-
@Copytexter erste Rückmeldung, dass funktioniert besser als gedacht...
und es ist ohne Zeitverzögerung... ein erster Test also bitte nicht auf die GUI schauen..
vG
-
Wie gesagt: Interessanter Ansatz. Bin gespannt auf die Fortsetzung. ;)
Content aside
- vor 5 JahrenZuletzt aktiv
- 12Antworten
- 2838Ansichten