baumaschinenteile24
Sehr aktives Mitglied
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
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