Groundspeak-Willkür oder doch begründet: Warum die Log-Länge auf 4000 Zeichen begrenzt ist

Lange war es ruhig bei uns, aber aktuell bin ich schwer am Schreiben für einen längeren Artikel, bei dem es hauptsächlich um Vermutungen zu Details der Groundspeak-Datenbank geht. Bei der Recherche stolperte ich mal wieder über das ominöse 4.000-Zeichen-Limit, das für Logtexte gilt. Und durch die starke Fokussierung auf technische Details der Datenbank ist mir endlich aufgegangen, warum die 4.000 Zeichen gelten: Groundspeak hat das nicht etwa willkürlich eingeführt, sondern es ist eine technische „Einschränkung“ des verwendeten Datenbanksystems. Bekanntlich setzt Groundspeak seit Ewigkeiten auf Windows-basierte Webserver (aktuell scheint es laut dem HTTPHeader „Server:“der mit Windows Server 2012 R2 mitgelieferte IIS 8.5 zu sein), insofern liegt die Vermutung nahe, dass auch die Datenbank-Server von Microsoft kommen, also SQL Server 2008 oder später im Einsatz sind. Und wenn man sich da mal die Spezifikationen der einzelnen Datenfelder durchliest, stellt man recht schnell fest, dass nchar und nvarchar jeweils auf 4.000 Zeichen Nutzlast limitiert sind. Klar, char und varchar (die Nicht-Unicode-Datentypen) können doppelt so viel, also 8.000 Zeichen, speichern. Aber da einerseits nachweislich Unicode unterstützt wird (merkt man z.B. an den Unicode-Emoji, die manchmal in Logs auftauchen) und andererseits die Unicode-Datentypen auch noch das Standard-Format in so ziemlich jeder mir bekannten SQL-Server-Version seit 2000 sind, ist davon auszugehen, dass hier die 4.000-Zeichen-Limitierung herkommt.

Und bevor mir irgendjemand Superschlaues mit der varchar(MAX)-Idee kommt: ja, damit hebt man theoretisch das Limit auf etwa 2GB pro Log, aber das ist bäh, pfui, aus, Dudu.

Schönen Abend

Euer Lutz / DukeSniper

Ersten Kommentar schreiben

Kommentar verfassen