[gelöst]Sperre auf No. Series Line

13. November 2019 14:32

Hallo zusammen,

ich habe hier das etwas nervige Thema Tabellen Sperren im Nav.
In unserem Fall treten die Sperren bei der Auftragsanlage auf und es ist zu 99% die Tabelle 309 No. Series Line betroffen.
Bisher haben wir ca 15 Tabellen "entschärft" bei denen nun keine Wartezeiten oder Sperren mehr auftreten.
Wir haben bereits mehrere Runden SQL und NAV Optimierung hinter uns aber dieser Punkt ist ganz schön hartnäckig.

Vielleicht hat ja einer von Euch noch eine Idee dazu.
Wir bekommen unsere Aufträge über diverse Kanäle ins NAV. (in der Spitze ca 20000 am Tag)
70% über manuelle Erfassung
20% Webshop
10% über Schnittstellen (Excel Dateien, bevorzugt .csv)

Was wir bisher getan haben:
Auf SQL Seite die Indexe und Lock´s angeschaut und optimiert.
Die Funktion Lock Table auf Disable gesetzt. (wait 10 sec)
Einige Pages optimiert. FlowFields wenn nötig entfernt oder gar ganze Übersichten neu angelegt und auf das nötigste reduziert.
Fact Boxen bearbeitet bzw entfernt.

Würde es für die Auftragsanlage evtl eine Verbesserung bringen, wenn wir für jede Auftragsart eine separate Nummernserie anlegen würden, die sich die einzelnen Prozesse dann ziehen ?
Die Tab selbst ist ja relativ überschaubar. Aber vielleicht
Zuletzt geändert von navuser1 am 4. Februar 2020 23:37, insgesamt 1-mal geändert.

Re: Sperre auf No. Series Line

13. November 2019 15:08

Ich stand vor vielen Jahren auch mal vor dem Problem der permanent gesperrten Nummernserienzeilen.
Damals ging es um ca. 6.000 Aufträge pro Tag, die jedoch (bis auf eine Hand voll) in zwei Tagesspitzen von je 15-20 Minuten angelegt wurden.
Der Grund ist, dass alle Sessions für das Anlegen eines Verkaufsauftrags denselben Datensatz in der Tabelle "No. Series Line" aktualisieren wollen.

Wir haben das Problem dadurch gelöst, indem wir jedem Benutzer (der Verkaufsaufträge anlegt) direkt bei der Anmeldung (in Codeunit 1) ein Kontingent von 10 Auftragsnummern in einer temporären Tabelle zur Verfügung stellen, aus denen sich seine Session dann bedienen kann.
Benötigt er eine 11. Auftragsnummer, so werden ihm wieder die nächsten 10 zur Verfügung gestellt.
Die Wahrscheinlichkeit, dass alle Benutzer zur gleichen Zeit weitere 10 Belegnummern benötigen, ist relativ gering.
Und falls das immer noch zu häufigen Sperren führen würde, hätten wir das Kontingent einfach auf 15, 20 oder mehr Belegnummern je Vergabe erhöht.

Es bleiben dadurch zwar am Ende des Tages immer einige Auftragsnummern unbenutzt und verfallen durch das Abmelden, aber die dadurch entstehenden Lücken störten niemanden.

Re: Sperre auf No. Series Line

13. November 2019 15:25

Die Lösung gefällt mir.
Nachdem wir die größte Menge manuell erfassen könnte das tatsächlich eine Verbesserung bringen.
Für die elektronische Verarbeitung würde das ja auch gehen, wenn wir diese immer über einen bestimmten User laufen lassen.
Dann könnte man diesem bei Bedarf entsprechend mehr Nummern zuweisen oder gleich eine eigene Nummernserie aus der sich nur der jeweilige Prozess bedient.