Blog
Friday, 14. February 2020

Showplan Erweiterung in SQL Server 2017

Anna
Teamleitung Website & Content

Mit der Veröffentlichung des SQL Servers 2017 wurden grundlegende Änderungen durchgeführt. Und obwohl ein Großteil der Arbeitszeit in die Entwicklung einer SQL Server Version die auf verschiedenen Linux Distributionen genutzt werden kann, gibt es zusätzlich einige neue interessante Themen und Features. Eine dieser Neuerungen ist die Erweiterung des Showplans. Diese bietet mehrere Möglichkeiten, die Performance von Abfragen zu verbessern, sowie eine Vielzahl neuer DMVs (Dynamic Management Views) die bei der Fehlererkennung unterstützen sollen.

UDFs

Die erste Erweiterung soll den Benutzer unterstützen, den Einfluss einer UDF (User Defined Function) auf das Ausführen von Queries besser zu erkennen. UDFs sind eine nützliches Werkzeug, um wiederverwendbare Routinen zu definieren, die anschließend in Abfragen benutzt werden können. In einem Ausführungsmodell, das einen “cursor” benutzt, kann das Benutzen solcher UDFs jedoch zu einem enormen Einbruch der Performance führen und die Ausführungszeit der Abfrage wird hauptsächlich innerhalb der Funktion verbracht.

Um als Benutzer und Anwender solcher UDFs kritische Zeitabläufe oder Funktionen besser zu identifizieren, wurden zwei neue Statistiken eingeführt: UdfCpuTime und UdfElapsedTime.
Also die gesamte CPU-Zeit, sowie die verstrichene Zeit.

Mit diesen beiden Statistiken lassen sich also nun bessere Entscheidungen hinsichtlich des Gebrauchs von UDFs treffen. Sollten UDFs identifiziert werden, die zu viel Zeit benötigen, sollten Sie über einen Wechsel zu sog. “Inline expressions” oder abgeleiteten Tabellen (engl. “derived tables”) nachdenken.

Mainzer Datenfabrik - Showplan Erweiterung in SQL Server 2017

Zeilen Ziel (engl. Row Goal)

In der Erweiterung des Row Goal geht es darum auch hier den Benutzer dabei zu unterstützen, besser den Einsatz von Optimizer row goal und seinen Einfluss auf Abfragen zu erkennen.
Row Goal beschreibt im Allgemeinen die Optimierung der betrachteten Zeilen beim Ausführen einer Abfrage. Zunächst wird davon ausgegangen, dass alle Zeilen der Ausgabe verarbeitet werden müssen. Der Optimierer versucht anhand von Mustern diese Anzahl an zu betrachtenden Zeilen (also den Row Goal) zu minimieren.
Wann immer dieser Row Goal benutzt wird, wird jetzt eine neue Operator-Eigenschaft mit dem Namen EstimateRowsWithoutRowGoal angezeigt. Vor dem Einführen dieser neuen Eigenschaft konnte man nur vermuten, ob Row Goal zum Einsatz kam oder nicht.

Mainzer Datenfabrik - Showplan Erweiterung in SQL Server 2017

Neben diesem, gibt es natürlich noch eine Vielzahl an weiteren interessanten Änderungen. Für weitere Informationen können Sie unsere Artikel über die Automatisierte Plan Korrektur und die Adaptive Abfrage Verarbeitung auf unserer Website lesen. Eine vollständige Übersicht finden sie hier direkt auf der Microsoft Seite bzgl. des Release von SQL Server 2017.

Interesse geweckt?

Unsere Expert:innen stehen Ihnen bei allen Fragen rund um Ihre IT Infrastruktur zur Seite.

Kontaktieren Sie uns gerne über das Kontaktformular und vereinbaren ein unverbindliches Beratungsgespräch mit unseren Berater:innen zur Bedarfsevaluierung. Gemeinsam optimieren wir Ihre Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!

Taunusstraße 72
55118 Mainz
info@madafa.de
+49 6131 3331612
Bürozeiten
Montag bis Donnerstag:
9:00 - 17:00 Uhr MEZ

Freitags:
9:30 - 14:00 Uhr MEZ