Nathansbratens Blog

Bloggen zwischen Tür und Angel

Die idiotischste Idee seit es SQL Datenbanken gibt

Vorab eine Warnung: Es wird technisch. Wir nutzen im Unternehmen jetzt seit mehreren Jahren eine etablierte Helpdesk Lösung die auch von anderen großen Namen eingesetzt wird. Diese ist auch wirklich effektiv, durchdacht und man merkt, dass es ein ausgereiftes System ist. Als es heute darum ging zusätzliche Felder für eine Serverauswahl im Admin zu integrieren bin ich im Nachhinein beinahe vom Glauben abgefallen.

Wer solche Systeme mit Custom / zusätzlichen Feldern für etwas kennt ist im Normalfall gewohnt, dass es in der Datenbank z.B. zwei Tabellen gibt. In der einen Tabelle wird der Feldtyp und die Zuordnung gespeichert. In der anderen dann die Daten die in das Feld eingetragen werden. Das ist natürlich nur eine sehr grobe Erklärung. Zugegebenermaßen will mir auch kein sinnvollerer Weg einfallen.

Die Entwickler unserer Helpdesk Software hatten allerdings eine ganz grandiose Idee: Wird z.B. einer Ticket-Kategorie ein neues Feld hinzugefügt so hängen sie in der Ticket-Tabelle einfach eine neue Spalte hinten an. Man muss sich den Rattenschwanz der jetzt folgt wirklich auf der Zunge zergehen lassen:

Das System führt ein ALTER TABLE auf die Ticket-Tabelle aus in der sich über eine Millionen Datensätze befinden. Gleichzeitig befüllt das System diese neue Spalte pro Datensatz(!!) mit einem vorgegebenen Default Wert. Na, kommt schon jemand darauf was hier jedes mal passiert wenn wir ein solches Feld anlegen? Richtig! Die Datenbank ist ordentlich am ächzen, da hier eine Massenabfertigung sondergleichen stattfindet. Vom Timeout des Webservers da die Abarbeitung der Anfrage zu lange dauert ganz zu schweigen.

Ich bin wirklich fast vom Stuhl gefallen. Unsere Entwickler oben schütteln gerade seit einer Stunde den Kopf sobald man den Namen des Helpdesks erwähnt. Wer denkt sich so etwas aus? In einer Umgebung mit wenigen Nutzern mag das ja funktionieren. Aber dann kann ich mein Produkt doch nicht für ALLE Umgebungen anbieten und damit werben das es in jedem Fall skalierbar und schnell ist…

Für meinen Teil werde ich mich hüten irgendwelche Custom Fields anzulegen bis da eine Lösung gefunden wurde…

 

 

3 Kommentare

  1. Dann muss halt mal wer früh aufstehen und die Custom-Fields nachts um 2 anlegen xD

  2. Alleine der Gedanke daran etwas so für ein sonst wirklich professionelles Produkt zu integrieren lässt mich glauben, dass hier ausnahmsweise der Praktikant am ersten Tag etwas implementieren durfte…

  3. Da sieht man mal wieder, das nicht alles Gold ist was glänzt.
    Wenn man schon so große Versprechungen verlauten lässt, sollte man auch dafür sorgen, das diese zumindest ansatzweise erfüllt werden.
    Das war dann wohl der sprichwörtliche Griff ins Klo.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.