[gelöst] "Sanduhr" nach "Ereignismeldung durchführen"

24. Juli 2009 08:49

Wir haben seit kurzem anscheinend irgendwo einen "Wurm" drin.

Alles, was im Bereich Fertigungsplanung durchgeführt wird, erzeugt bei dem Ausführenden lange Wartezeiten nach dem Ausführen, obwohl die Operation schon längst abgeschlossen ist.

Systemumgebung: NAV 5.0 SQL ca. 20 GB / 40 Citrix user

Wir stellen fest:

- Der Planungslauf läuft derzeit ca. 1,5 Stunden.(früher 10 Min.)
- Die Funktion „Ereignismeldung durchführen“ dauert mehrere Minuten. (früher Sekunden). Dabei ist es egal, ob man eine oder mehrere durchführt.
- Einen ähnlichen Effekt kann man beobachten, wenn man die Planungszeilen löscht.
- Wenn man das direkt auf dem Server ausführt (mit lokaler Anwendung), hat man das gleiche Problem.
- Weiterhin ist zu beobachten, dass die Daten bereits erzeugt sind, während der Ausführende noch auf Rückmeldung vom System wartet.
- Während des Wartens sind die betroffenen Tabellen gesperrt.

Hat jemand eine Ahnung, wodurch dieser Effekt begründet sein kann?
Zuletzt geändert von rallnus am 12. August 2009 13:26, insgesamt 1-mal geändert.

Re: "Sanduhr" nach "Ereignismeldung durchführen"

24. Juli 2009 09:00

Hi,

die Anzahl der gleichzeitigen User ist ja nicht so hoch und wenn die Hardware der Citrix und des SQL Servers nicht gerade anno 1404 sind sollte man solche Ursachen eigentlich ausschließen können.

Was Du beschreibst klingt nach ungünstigem Sperrverhalten. Greift ihr eigentlich auch im Tagesgeschäft mit externen Programmen (Excel, ODBC, Reporting tools etc) auch noch auf die DB zu? Was manchmal auch Wunder hilft und nicht verkehrt ist, ist bei den betroffenen Tabellen SQL Indexe anzulegen (am SQL Server). Das hat dann nichts mehr mit Navision zu tun, ist aber in vielen Fällen die einzige Möglichkeit (Wenn in Navision alles ok aussieht) noch etwas zu optimieren. Ansonsten kannst Du in der Programmierung des PLanungslaufes mal schauen ob er viel mit Locktable arbeitet bzw. welche Tabellen er überhaupt anpackt.

Den SQL-Job Rebuild Index und Createstats lasst ihr übrigens laufen oder?

Gruß
Tesa.

Re: "Sanduhr" nach "Ereignismeldung durchführen"

24. Juli 2009 09:16

Seltsam. Wenn weder Planungslauf noch Ereignismeldung jemals schneller gewesen wären, aber von 10 Min auf 1,5 Stunden?¿ :shock:

Ist irgendwas verstellt worden? Zb der Cache auf dem Server?

Re: "Sanduhr" nach "Ereignismeldung durchführen"

24. Juli 2009 09:29

Schau Dir doch mal die Auslastung vom SQL Server an iM Taskmanager (auch Arbeitssspeichernutzung und Festplattendurchsatz).

Und die auslastung auf den Citrix Servern sowie ARbeitssspeichernutzung.

Wenn das so plötzlich auftritt kommt der Verdacht nahe das in der Programmierung was geändert wurde was sich ein bißchen negativ auf die Laufzeiten auswirkt.

Re: "Sanduhr" nach "Ereignismeldung durchführen"

11. August 2009 17:18

So, erst mal vielen Dank für die Antworten.

Ich habe jetzt weitere Ereknntnisse, aber noch keine Lösung.

Zu den Fragen: es hat keine Umstellungen, Programmierungen oder Besonderheiten im System gegeben

Es ist aber so:

- wenn man den Client Monitor oder Code Coverage anwendet, findet man keine Besonderheit bzgl. der Laufzeiten
- wenn man den Report "Ereignismeldung durchführen" oder "Neuplanung berechnen" schliessen möchte, ohne die Funktion auszuführen, hat man trotzdem eine Wartezeit von ca. 10 Minuten, bis sich die Maske schliesst und während dieser Zeit sind keine Änderungen im Bereich Produktion möglich, da die Tabellen gesperrt sind!!! Dieses Erscheinngsbild ist mir völlig unbekannt.

Die Programme werden also richtig augeführt, aber der Client muss nach Ausführung des Befehls sehr lange auf ein Schliessen der Masken von Reports warten und sperrt auch in dieser Zeit.

Was kann das sein??

Ein Kommunikationsproblem?
Wenn ich das ganze auf dem Server mit einer lokalen Installation mache, habe ich das gleiche Problem.

Test- und Produktivdatenbank sind auf dem gleichen Server. Im Testsystem ist dieses Erscheinungsbild stark reduziert.

Als Lösung fallen mir noch ein: Neustart aller Dienste oder Upgrade der Clients.

Nächste Woche enden unsere Betriebsferien und dann muss es wieder laufen. Unser Supporter hat auch keine Idee.

Re: "Sanduhr" nach "Ereignismeldung durchführen"

12. August 2009 13:25

Das Problem ist gefunden: eine Eingenprogrammierung wurde zeitkritisch, dadurch, dass ein Bedarf an einem bestimmten Artikel mit vielen Bedarfsverursachern entstanden war.

Was kann man daraus lernen?

Man sollte immer wenn man grössere Bearbeitungsschleifen durchläuft eine Status- und Fortschrittsanzeige einbauen.
Dann kann man sofort sehen, in welchem Datensatz bzw. Schritt man sich befindet.

Re: [gelöst] "Sanduhr" nach "Ereignismeldung durchführen"

12. August 2009 13:31

Nur aus Interesse: wie hoch war der Bedarf an diesem Artikel denn?