0

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

null
    • Team Lead Customer Service
    • joerg
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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 

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Mit Copytexter und Leonids Hilfe ist der Grundstock gelegt.

    PNG-Bild

    Jetzt werde ich mal schauen wie sich das in der Größe verhält

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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. ;)

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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 ...

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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 .

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    noch eine Frage Leonid, deine rund 730.000 Datensätze sind in einer Tabelle zusammengefasst ?

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    @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 

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    👍 Wie gesagt: Interessanter Ansatz. Bin gespannt auf die Fortsetzung. ;)

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 12Antworten
  • 2838Ansichten