1. Oktober 2014 21:09
Hallo,
da gibt es viele Möglichkeiten, warum das eine funktioniert, und das andere nicht.
Der SQL- Server pflegt gewöhnlich selbst zu entscheiden in welcher Form er auf die Tabellen zugreift.
Sind die Schlüssel zu sehr fragmentiert?
Sind die SQL- Statistiken gepflegt?
Ist die Datenbankdatei fragmentiert?
ist die Datenbankdatei fast voll und wird laufend in kleinen Schritten vergrößert?
Und, und,....
EDIT:Desweiteren kann auch ungeschickte Programmierung für die mangelnde Performance verantwortlich sein. Programme die mit der CRONUS vernünftig laufen, haben mit größeren Datenvolumina u.U. große Probleme weil z.B.:
- Flowfields auf Flowfields verwendet werden.
- Schlüssel (für den SQL- Server) ungeschickt gewählt wurden.
- Filter ungeschickt gewählt wurden. (Bestes Beispiel aus dem Standard: die Funktion CalcOverDueBalance aus der Debitorentabelle. Hier wird der fällige Saldo ermittelt. Bis CU?? wurde das über alle Debitorenposten gemacht. Dann hat man eine Query erfunden, und filtert diese sinnigerweise auf den Status Offen=Ja. Den Unterschied merkt jeder, der in einer größeren NAV 2013-DB die Debitorenübersicht öffnet. Dabei ist nicht die Query der Performancebringer, sondern das Filtern auf Offen=ja. Kann man auch ausprobieren, indem man den alten Code lässt und nur den Filter auf Open=True hinzufügt).
In NAV 2013 kommt noch hinzu , das alle Felder einer Page immer geladen werden, auch wenn sie ausgeblendet sind. Um den Übeltäter zu finden kann man nur Flowfield für Flowfield aus der Artikelübersicht entfernen, und schauen wann es besser wird. Das so ermittelte Feld muss man sich dann genauer anschauen, warum der Zugriff langsam sein könnte.
Zu guter letzt gab es auch technische Probleme in NAV2013, die zu Performance- Problemen geführt haben, und mit einem technischen Update verbessert wurden.
Gruß, Fiddi