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ürf­te es beim Bli­ck in so man­che Micro­soft-SQL-Daten­bank die Haa­re zu Ber­ge 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­si­on 2005 soge­nann­te benut­zer­de­fi­nier­te Funk­tio­nen gibt, die gen­au dies ver­hin­dern sol­len. War­um also wer­den die­se nicht ver­wen­det? Die Ursa­che ist ihre teil­wei­se kata­stro­pha­le Per­for­man­ce. Nutzt man die­se 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­le­ra – sau­be­re Archi­tek­tur oder gute Per­for­man­ce.
Zum Glück ist aber auch die Daten­bank­welt nicht ganz so schlecht wie es auf den ers­ten Bli­ck scheint. Mit ein paar weni­gen Hand­grif­fen kann man tat­säch­li­ch 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…