Benutzerdefinierte Funktionen in Microsoft SQL Server

Richtig gerechnet

Mit SQL Server 2000 hat Microsoft zum ersten Mal eine Technik implementiert, die es ermöglicht, wiederkehrende Berechnungen und Abfragen in Funktionen zu kapseln. Dadurch ließen sich modulare Entwicklungswerkzeuge bereitstellen, die eine immer wiederkehrende Kodierung von Abfragen obsolet machten. Doch sorgten diese benutzerdefinierten Funktionen auch für eine hohe Serverlast. Erst mit SQL Server 2014 hat sich Microsoft dieses Problems angenommen. Wir beleuchten die benutzerdefinierten Funktionen und deren Auswirkungen auf den Server.
Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es ... (mehr)

Ebenso wie Funktionen in Programmiersprachen sind auch benutzerdefinierte Funktionen von SQL Server Routinen, die Parameter annehmen, eine Aktion ausführen (etwa eine komplexe Berechnung) und das Ergebnis dieser Aktion als Wert zurückgeben. Der Rückgabewert kann ein einzelner Skalarwert oder ein Resultset sein. Mit der Einführung von benutzerdefinierten Funktionen zog allerdings auch der Ärger der Datenbankadministratoren in die Geschäftsräume ein, da sie immer wieder beobachten mussten, wie die CPU-Auslastungen bei SQL-Servern an ihre Grenzen stießen oder dass eine hohe Last auf dem Storage lag. In vielen Fällen war die Ursache für diese Auslastung die Verwendung benutzerdefinierter Funktionen. Microsoft adressierte diese Problematik erst sehr spät mit SQL Server 2014.

Skalarfunktionen

Eine benutzerdefinierte Skalarfunktion gibt einen einzelnen Datenwert in einer RETURN-Klausel zurück. Bei einer Inline- Skalarfunktion ist der zurückgegebene Wert das Ergebnis einer einzelnen Anweisung. Bei einer aus mehreren Anweisungen bestehenden Skalarfunktion kann die Funktion mehrere Transact-

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023