[Gelöst] Performanceprobleme

23. Oktober 2008 16:02

Hallo,

ich habe ein Problem bezüglich der Performance gewisser Funktionen unter NAV 3.70.

Speziell bei der Funktion "Lieferzeilen holen" auf der Rechnungskarte im Debitorenbereich.

Durchsucht wird hierbei die Tabelle "Verkaufslieferzeilen" (111).

Dass dieser Vorgang natürlich etwas länger dauert ist mir klar. Immerhin befinden sich weit über 2 Mio Datensätze in dieser Tabelle. Die Performance ist jedoch dermaßen im Keller, dass ich 30 Minuten und mehr brauche um 1. die gewünschten Zeilen anzeigen zu lassen (offene Lieferzeilen des betreffenden Debitors) und 2. diese in die aktuelle Rechnung übertragen habe.

Wenn solch eine Rechnung erstellt wird kann jeder andere User Pause machen....

Durch Optimierung der Tabellen habe ich das Problem etwas vermindert. Auch die Filtertechnologie scheint sehr viel mit der Performance in diesem Fall zu tun zu haben.

Es kann doch nicht sein dass NAV bei solchen Dingen in die Knie geht.

Hat jemand einen heißen Tip?
Zuletzt geändert von DPhilippi am 27. Oktober 2008 17:09, insgesamt 1-mal geändert.

Re: Performanceprobleme

23. Oktober 2008 16:41

Die Performance ist ja ein leidiges Thema, aber nicht weil NAV so lahm ist, sondern weil leider viele Anwender mit denkbar ungünstigen Serverkonfigurationen arbeiten. Und genau hier kann man auch das meiste tun, darum ist es nötig etwas mehr über euer System zu wissen.

Wenn du also ein par Details zur Konfiguration des Servers preisgibst, dann wirst du sicher seitenweise Tipps bekommen.

Welche Details das sind? Nun da fallen mir als erstes die folgenden ein, wenngleich sicher auch seitenweise weitere Fragen zu erwarten sind:

1.) Welche DB? (Native oder SQL)
2.) Wie sieht die Hardware des Servers aus? (RAM, Platten, Verteilung der DB auf den Platten, welches RAID)
3.) Wieviele User greifen auf die DB?

Ich lass es jetzt mal dabei, mögen andere fortsetzen.

Re: Performanceprobleme

23. Oktober 2008 16:57

4.) Auf welches Feld wird gefiltert (Verk. an Deb.-Nr. oder Rech. an Deb.-Nr. oder Lief. an Deb.-Nr.), und nach welchem Schlüssel sucht er?

Re: Performanceprobleme

24. Oktober 2008 11:27

Also.

- Es ist ne Native Datenbank
- Es greifen etwa 20 User gleichzeitig auf die DB zu
- Zugriff erfolgt über Citrix
- Die Maschine besitzt einen 2,8 Ghz Prozessor mit 2 Gig RAM.
- Die Datenbank sitzt auf einer einzigen Platte ist also nicht verteilt.

Filter sind "Rechn. an Deb. Nr." und "lief nicht fakt. Menge <>0"

Schlüssel ist ebenfalls "Rechn. an Deb. Nr."

Mir geht es um allgemeine Informationen wie man die Performance einer DB verbessern kann.

Kann man uralte Posten irgendwie archivieren, komprimieren oder gar auslagern?

In der Verkaufslieferzeilentabelle befinden sich antürlich alle Posten seit Beginn an.

Re: Performanceprobleme

24. Oktober 2008 11:56

Hallo,

kannst du in Tabelle 110 'Sales Shipment Line" testweise den Schlüssel "Bill-to Customer No."("Rechn. an Deb. Nr.") erweitern auf "Bill-to Customer No.","Qty. Shipped Not Invoiced" ("lief nicht fakt. Menge").

Vorsicht: Die Tabelle ist während des Schlüsselaufbaus blockiert!

Wenn das der einzige Schlüssel in 110 mit "Bill-to Customer No." ist brauchst du Codeunit 64 nicht zu ändern, ansonsten im OnRun- Trigger den
Code:
SalesShptLine.SETCURRENTKEY("Bill-to Customer No.");
auf
Code:
SalesShptLine.SETCURRENTKEY("Bill-to Customer No.","Qty. Shipped Not Invoiced");
ändern.

Gruß, Fiddi

Re: Performanceprobleme

24. Oktober 2008 18:52

Ergänzend zu fiddis Antworten möchte ich eine Frage stellen: Wurde die Datenbank seitdem Produktivstart aus einer fbk erneut aufgebaut?
Der Hintergrund dieser Frage ist, ob evtl. die Keys und Indexe fragmentiert sind.

Kann man uralte Posten irgendwie archivieren, komprimieren oder gar auslagern?


Ja, kann man.
Es gibt die Datumskomprimierung für z.B. Sachposten , Artikelposten usw. Dort werden die Posten gelöscht.
Weiterhin kann man gebuchte Belege löschen, wenn diese min. 1x gedruckt wurden.

Bei Löschaktionen ist aber folgendes zu beachten:
Der Gesetzgeber hat Mindestaufbewahrungsfristen für steuerrechtlich relevante Belege und Dokumente festgelegt.
So müssen z.B. Rechnungen 10 Jahre aufbewahrt werden. Nähere Auskünfte hierüber entweder http://de.wikipedia.org/wiki/Aufbewahrungsfrist oder beim Steuerberater.

Die Belege und Dokumente müssen nicht zwingend in NAV vorgehalten werden.
Eine Möglichkeit wäre ausdrucken und archivieren oder eine elektronisches Revisionsarchiv wie z.B. Easy Enterprise.

Re: Performanceprobleme

24. Oktober 2008 20:28

Wer schon mal Posten komprimiert hat, und sich danach über die daraus entstandenen Daten in Auswertungen geärgert hat, wird möglichst darauf verzichten :roll: .
Aus diesem Grund kann man in NAV 5.0 auch keine Artikelposten mehr komprimieren.

Fiddi

Re: Performanceprobleme

27. Oktober 2008 17:08

Danke euch allen.

Ich hab das Problem durch die richtige Filtertechnik ganz gut in den Griff bekommen.