Die Lösung des gordischen Knotens: T-SQL objektorientiert UND schnell

Pro­gram­mie­rern aus der Welt der objekt­ori­en­tier­ten oder pro­ze­du­ra­len Spra­chen dürfte es beim Blick in so man­che Micro­soft-SQL-Daten­bank die Haare zu Berge ste­hen las­sen. Die glei­che Pro­gramm­lo­gik wird häu­fig immer und immer wie­der geschrie­ben und dies an ver­schie­dens­ten Stel­len in der Daten­bank. Das ist umso erstaun­li­cher, weil es bereits seit der SQL-Ser­ver-Ver­sion 2005 soge­nannte benut­zer­de­fi­nierte Funk­tio­nen gibt, die genau dies ver­hin­dern sol­len. Warum also wer­den diese nicht ver­wen­det? Die Ursa­che ist ihre teil­weise kata­stro­phale Per­for­mance. Nutzt man diese Skalar­wert­funk­tio­nen zur Zen­tra­li­sie­rung des Quell­codes muss man wohl oder übel ein schlech­tes Lauf­zeit­ver­hal­ten in Kauf neh­men. Von daher hat man die Wahl zwi­schen Pest oder Cho­lera – sau­bere Archi­tek­tur oder gute Per­for­mance.
Zum Glück ist aber auch die Daten­bank­welt nicht ganz so schlecht wie es auf den ers­ten Blick scheint. Mit ein paar weni­gen Hand­grif­fen kann man tat­säch­lich den Quell­code zen­tra­li­sie­ren und das bei sehr gutem Lauf­zeit­ver­hal­ten. Wie das geht? Ein­fach wei­ter­le­sen… wei­ter­le­sen…