[Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

7. November 2007 10:26

Dieses Thema dient mehr zur Info und Diskussion ...

Seit NAV 5.0 scheint es ein neues Feature zu geben: Um die Performance (auf SQL) zu verbessern, wurden scheinbar für einige/mehrere (oder alle?) Tabellen/Objekte max. Größen definiert. Dies solltet ihr bei der Anpassung eurer Anwendungen im Hinterkopf behalten.

Hintergrund meines Beitrags:
Ich sollte die Tabelle 79 Company Information um 5 weitere Kontenfeldblöcke (a 7 Felder) erweitern. In der Tabelle enthalten waren außerdem bereits zwei Felder Text 250, zwei Text 20 und eines Text 30.
Beim Versuch, den insgesamt 6. Kontenblock zu speichern, begegnete mir diese putzige Fehlermeldung:

Die aktiven Felder eines Datensatzes können nicht mehr als 4000 Bytes aufnehmen. Die aktiven Felder in der Tabelle Company Information nehmen 4008 Bytes in Anspruch.

Sie müssen die Anzahl aktiver Felder oder die Länge der aktiven Felder verringern.


Da hab ich mich gefreut ... Und schlussendlich meine zwei Text 250-Felder auf 150 verringert.

Daraufhin habe ich getestet, ob mir der gleiche Fehler begegnet, wenn ich alle neuen Felder versuche, in eine 4.0 SP3-Datenbank einzufügen (sowohl native als auch SQL) - nüscht!

Falls jemand dazu schriftliche Infos hat, bitte weiter leiten ... :-(

7. November 2007 11:08

Der SQL-Server hat eine max. Datensatzlänge von 8000 Bytes.
Soweit ich weiß erlaubt der native Datenbankserver ab der Version 3.60 eine Datensatzlänge von 4000 Byte.

7. November 2007 11:55

Ich arbeite aber auf 5.0 SQL. Und die Fehlermeldung besagt, dass es für die Tabelle 79 leider nur 4000 Bytes sind.

7. November 2007 13:20

Es ist auch bei anderen Tabellen so.

20. März 2008 11:24

Leider kein Bug, sondern Rückbau, siehe hier.

20. März 2008 12:30

Kowa hat geschrieben:Leider kein Bug, sondern Rückbau, siehe hier.


Oh, danke.
Den Artikel gab es damals noch nicht.
Der Inhalt ist recht ärgerlich ...

20. März 2008 17:25

Hi,

kann jemand den Inhalt in 3 Saetzen fuer Leute ohne Zugriff wiedergeben? Natuerlich nur, wenn das Zeug nicht top secret ist.. ;)

Danke & Gruesse
feri

20. März 2008 18:38

Die Sperre ist da, ist neu seit 5.0 und man hat zwei Möglichkeiten, diesen Fehler NICHT zu bekommen:
  • So lange die max. Feldgrößen in der Tabelle beschränken, bis das Limit wieder unterschritten ist
  • Eine neue Tabelle erstellen, die die zusätzlichen Felder mit aufnimmt.

Du siehst, das sind völlig neue Erkenntnisse, auf die wir alle gewartet haben .... *grummel*

20. März 2008 19:11

Ja, das sind wirklich tolle Tips für den Workaround, darauf wären wir alleine nicht gekommen :mrgreen:

25. März 2008 09:41

Darauf haben alle gewartet, das Aufsplitten von Tabellen, um die Begrenzung zu umgehen. Ich tippe mal das die Grenzen dann als neues Feature für Dynamics Nav 2009 R2 mit SQL Server 2008 wegfallen ;)

Re:

16. August 2013 13:20

JanGD hat geschrieben:Ich tippe mal das die Grenzen dann als neues Feature für Dynamics Nav 2009 R2 mit SQL Server 2008 wegfallen ;)


Leider liegst du falsch :)

Re: Re:

16. August 2013 13:28

navsyst hat geschrieben:Leider liegst du falsch :)


Dann schau mal wann ich das geschrieben habe...

Re: [Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

16. August 2013 13:33

Ich weiss :mrgreen:

Re: [Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

16. August 2013 13:47

@JanGD
Ich glaube navsyst wollte nur deine Erwartungshaltung von vor 5 Jahren auf den Boden der Tatsachen holen. :-D

mfg,
winfy

Re: [Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

3. September 2013 11:53

@Winfy, JanGD: genau das meine ich :wink:

Re: [Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

5. Juni 2015 11:01

Das nervt!

für die Nachwelt: bei NAV2015 ist die Beschränkung auf 8000 Bytes "gewachsen"...

Re: [Gelöst] Datensatzgrößenbeschränkung in NAV 5.0

5. Juni 2015 11:09

für die Nachwelt: bei NAV2015 ist die Beschränkung auf 8000 Bytes "gewachsen".


Nicht wirklich :-?

Da die Textfelder jetzt Unicode sind, hat sich deren Platzbedarf auch verdoppelt.

Außerdem sollte man sich überlegen, ob man immer alles in einer Tabelle unterbringen sollte. Je größer der Datensatz, desto langsamer das System.

Bisher waren bei mir Datensatzgrößenprobleme meistens auf suboptimales Design zurückzuführen.

Gruß Fiddi