hierarchische Strukturen


Mal angenommen, Ihre Entwickler sollen Daten auf einer Website Daten hierarchisch darstellen/laden. Die meisten Entwickler würden hergehen und 100% der Daten laden und im Code durch schleifen, rekursiv aufgerufene Funktionen/Methoden (oder was auch immer) laden und ggf. sogar Daten "wegschmeißen" welche gar nicht in die Hierarchie passen weil verwaist. Was man dann halt auch erst merkt, wenn die Hierarchie geladen wurde.

Das belastet unnötig die Datenbank und ebenfalls die CPU und Speicher des Frontend / Web Servers. Ein leider relativ unbekanntes Gegenmittel wären die CTE (Common Table Expression) mit der die Struktur im SQL Server zusammengebaut wird, und das alles ganz ohne böse Cursor. Und nun 2 Artikel um CTE´s effizient im SQL Server anzuwenden:

http://msdn.microsoft.com/de-de/library/ms190766(v=sql.105).aspx
http://blog.sqlauthority.com/2008/07/28/sql-server-simple-example-of-recursive-cte/

Für Administratoren hat das natürlich den großen Vorteil, dass weniger aus der Datenbank "gesaugt" wird und im Frontend Ressourcen geschont werden. Das bisschen mehr an CPU Load auf der DB sollte kein Problem darstellen denn das ist ja meistens nicht der Flaschenhals auf einem Datenbankserver.


  • 10.01.2019 11:01:58