Neu Stücklisten-Anlage bei großer Datenbank

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
446
63
Wir stehen aktuell vor folgendem Problem, momentan noch eher lästig, aber allmählich wirklich drängend:

Wenn man einem Stücklistenartikel eine neue Komponente hinzufügen will, ist die Wawi geschlagene 35 Sekunden (seit 1.4 Update 40 Sekunden) beschäftigt. Die Analyse mit dem SQL Server Monitor ergibt, dass die Wartezeit durch Festplattenaktivität entsteht. Diese Aktivität wird von der entsprechenden Abfrage verursacht, die, soweit ich das mit meinen SQL-Kenntnissen entziffern konnte, eine Liste aller möglichen Komponenten erstellt (also Stücklistenartikel aussortiert) und diese dann nach Kategorien sortiert in der Maske anzeigt. Dabei schaufelt die Datenbank mehrmals ca. 200.000 Datensätze um. Ich nehme an, einmal zum Aussortieren und dann, um die Kategorien der einzelnen Artikel zuzuordnen.
Naturgemäß wird die Arbeitsproduktivität beim Anlegen von Stücklistenartikeln auf diese Weise ganz schön verringert. Von daher sind wir nun am überlegen, wie sich kurzfristig eine Lösung für das Problem finden lässt. Letzten Endes geht es darum, diesen Festplattenbetrieb einzusparen und somit die SQL-Wartezeiten loszuwerden. Dazu stellen sich folgende Fragen:

1. Kann die Datenbank den Vorgang im Prinzip auch im Arbeitsspeicher durchführen? Die mit der Wawi mitgelieferte MS-SQL Expressversion kann ja nur 1GB Arbeitsspeicher verwenden, also könnte ich mir vorstellen, dass mit der Vollversion die Prozedur komplett im RAM erledigt werden könnte. Da würde mich aber mal die Meinung der Experten interessieren, ob diese Funktion überhaupt im Arbeitsspeicher abgefertigt werden kann, oder immer Daten auf die Festplatte schreibt.
2. Wenn letzteres der Fall ist, was kann man tun, um den Vorgang zu beschleunigen? Der Server hat schon eine SSD mit kurzen Zugriffszeiten, das fällt also als Verbesserungsoption aus. Würde ein RAID evtl. helfen? Also sprich RAID 0 oder RAID 5 mit Striping, so dass sich die Last auf mehrere Platten verteilt. Die zusätzliche Hardware wäre wahrscheinlich sogar günstiger als eine MS-SQL Lizenz...
3. Wenn mehr Power [/TimTailor] auch nichts bringt, kann man eventuell die Datenmengen verringern, die bewegt werden müssen? Eines der Probleme ist sicherlich, dass wir auch sehr viele Kartegorien haben. Wenn man also die Auswahl der möglichen Komponenten auf bestimmte Kategorien eingrenzen könnte, wäre das für uns nützlich, weil wir hunderte von Kategorien haben, in denen überhaupt keine Artikel drin sind, die sich als Komponente eignen würden, die aber trotzdem mit rausgesucht werden. Ich habe schon überlegt, alle diese Artikel als Stücklistenartikel zu kennzeichnen, indem man ihnen eine Dummy-Komponente zuweist, aber das ist reichlich umständlich und zieht andere Probleme nach sich (z. B. fehlende Lieferantendaten bei diesen Artikeln). Wenn es also irgendeinen Trick gibt, mit dem man Artikel als "kann keine Stücklistenkomponente sein" kennzeichnen kann, wüsste ich den gerne.
4. Zu guter Letzt: Workarounds? Kann man Stücklistenartikel irgendwie anlegen, ohne die Maske zu verwenden? Gebündelt mit der Ameise ginge in einigen Fällen vermutlich, ist aber nicht immer praktikabel, weil es auch einen Moment braucht und man immer erst die Einlesedatei produzieren muss. Duplizieren eines Artikels mit denselben Komponenten geht natürlich schnell, ist aber auch begrenzt in der Anwendung. Sonst fällt mir dazu nichts ein, würde mich auch da über Tipps freuen.

Ich freue mich über alle guten Ratschläge und Hinweise. Wir benutzen aktuell die Wawi 1.4.26.1 (Profil ist nicht mehr ganz aktuell).

André
baumaschinenteile24
 

MartinK

Moderator
Mitarbeiter
5. Dezember 2013
79
14
Grundsätzlich bearbeitet der SQL Server alle Abfragen ausschließlich im RAM. In dem Moment wo der RAM begrenzt ist, bspw. durch die Limitierung der Express Edition auf 1.4GB müssen Daten wieder aus dem RAM geworfen werden und erneut von der Festplatte gelesen werden.

Wie groß die Verbesserung mit der Standard Edition ist kann "relativ einfach" getestet werden. Für Testzwecke kann die Developer Edition genutzt werden. Einfach diese mal auf einem Rechner installieren, ein Backup der Produktiv DB dort einspielen und die Stücklistenerstellung testen. Am besten 2-3 Stücklisten erstellen. Beim ersten Erstellen müssen auch die Daten erstmal von der Festplatte gelesen werden, sollten dann aber im RAM vorgehalten werden. Die Developer Edition entspricht einer Enterprise Edition vom Umfang her aber die Beschränkungen der Standard sollten hier völlig ausreichen.
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Ich vermute, dass hier die Wartezeit beim Dialog "Artikel nachschlagen" entsteht, weil initial alle Artikel geladen werden.
Ich hatte dazu gerade ein Ticket, weil das Verhalten in einer der nachfolgenden Versionen anders ist. Ich sprech noch mal mit unserer Entwicklung - evtl. ist das andere Verhalten - sprich initial wird erst einmal gar nichts geladen - in solchen Fällen die bessere Wahl.

Edit: Das initiale Laden wird in einer der nächsten Versionen schon nicht mehr vorhanden sein. Das wäre mit der Pilotkundenversion 1.4.28.0 bereits der Fall. Wenn es dann noch immer langsam ist - dann sollte Deine Artikelverwaltung ansich aber auch langsam sein - dann würde ich Dich bitten, ein Supportticket zu eröffnen, damit wir das genauer untersuchen können.
 
Zuletzt bearbeitet:

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
446
63
DIe Artikelverwaltung ist an sich nicht langsam. Nur beim Stücklisten anlegen ackert sich die Datenbank ab. Wir haben heute auf die 1.4.27.3 geupdatet, wann wäre denn die 1.4.28 für Otto-Normal-Anwender verfügbar? Dann würde ich das erstmal testen, bevor ich mit der Developer Edition herumbastle.
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Die Pilotkundenversionen sind für alle verfügbar, die sich als Pilotkunde im Kundencenter eintragen.
Wann diese als Stable herausgegeben wird kann ich Dir nicht sagen.
 

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
446
63
Ich habe mich dann mal dort angemeldet und die Pilotversion heruntergeladen. Kann ich diese parallel zur aktuellen Version betreiben, oder sollte ich sie auf einem separaten System verwenden?
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Wenn du damit noch nicht produktiv arbeiten möchtest, dann mach das bitte auf einem separatem System.
Zieh Dir eine Sicherung Deiner Datenbank, dann kannst du damit nach Herzenslust testen - nur bitte Workflows deaktivieren und keinerlei Abgleiche dort durchführen.
 

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
446
63
Sieht sehr gut aus, danke. Dann werde ich erstmal von größeren Um- und Aufrüstungen absehen und auf den Release der 1.4.28 warten.
 

Ähnliche Themen