Robert Panther
SQL-Abfragen optimieren. Was Entwickler über Performance wissen müssen
schnell+kompakt
ISBN: 978-3-86802-650-4
© 2014 entwickler.press
ein Imprint der Software & Support Media GmbH
http://www.entwickler-press.de
http://www.software-support.biz
Ihr Kontakt zum Verlag und Lektorat: lektorat@entwickler-press.de
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.
Lektorat: Theresa Vögle
Korrektorat: Frauke Pesch
Copy-Editor: Nicole Bechtel, Lisa Pychlau-Ezli
Satz: Dominique Kalbassi
Umschlaggestaltung und Titelbild: Maria Rudi
Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art (Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder andere Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für die Richtigkeit des gesamten Werks, kann, trotz sorgfältiger Prüfung durch Autor und Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen und Firmennamen sind in der Regel durch deren Inhaber geschützt.
Vorwort
Die Performance von Datenbanken ist oft ein kritischer Faktor für die effektive Nutzbarkeit von Businessanwendungen. Um eine gute Performance zu gewährleisten, müssen verschiedene Seiten der Datenbank betrachtet werden.
Während die Konfiguration und Überwachung der Datenbankserver idealerweise in den Händen von Datenbankadministratoren liegt, spielen auch die Datenbankzugriffe selbst eine entscheidende Rolle. Diese liegen normalerweise im Verantwortungsbereich der Entwickler (wobei ich hier Anwendungsentwickler und Datenbankentwickler der Einfachheit halber zusammenfasse). Aber auch von Datenbankadministratoren wird gelegentlich verlangt, SQL-Skripte zu schreiben, beispielsweise um Wartungsaufgaben zu implementieren, die dann regelmäßig automatisiert ausgeführt werden.
Dieses Buch erklärt in kompakter Form, wie man performante SQL-Abfragen formuliert. Der Inhalt ist in sechs Kapitel aufgeteilt:
Der gesamte Text sowie insbesondere die Codebeispiele orientieren sich an Microsoft SQL Server ab Version 2005 bis hin zur gerade veröffentlichten 2014er-Version. Da es gerade bei Serveranwendungen üblich ist, dass auch ältere Versionen noch lange Zeit eingesetzt werden, wird stets darauf hingewiesen, wenn ein Optimierungsansatz erst mit einer neueren Version von SQL Server genutzt werden kann und – sofern möglich – auch eine Alternativlösung für ältere SQL-Server-Versionen aufgezeigt. Viele Optimierungsansätze sind sogar auf SQL-basierte Datenbankmanagementsysteme anderer Hersteller anwendbar. Somit erhält jeder, der selbst SQL-Abfragen schreibt – egal, ob Anwendungsentwickler, Datenbankentwickler oder DB-Administrator – wertvolle Hinweise für die Praxis.
Als Beispieldatenbank wird für die meisten Codebeispiele die Datenbank AdventureWorks in der 2012er-Variante genutzt, die bei Codeplex über den folgenden Link kostenfrei erhältlich ist:
http://msftdbprodsamples.codeplex.com/releases/view/93587
Die 2014er-Variante der AdventureWorks-Beispieldatenbank war zur Fertigstellung dieses Texts leider noch nicht verfügbar. Falls Sie eine ältere Version als SQL Server 2012 einsetzen, sollten die Beispiele auch (notfalls mit geringen Anpassungen) auf den dazu passenden Versionen der AdventureWorks-Datenbank nachvollziehbar sein.
Zum Verständnis des Texts und der Beispiele werden zumindest SQL-Grundkenntnisse vorausgesetzt, da eine ausführliche Darstellung der grundlegenden SQL-Befehle den Umfang dieses Buchs sprengen würde. Dazu gibt es für den Einstieg in die Programmierung mit SQL bereits genügend andere gute Bücher auf dem Markt.
Das Optimieren von SQL-Abfragen ist ein komplexes Thema. Zu vielen Problemstellungen gibt es keine eindeutig beste Lösung, sondern mehrere verschiedene Ansätze, mit denen das Problem angegangen werden kann. Wenn Sie also zum einen oder anderen beschriebenen Ansatz einen anderen alternativen Lösungsweg bevorzugen, oder auch einfach nur allgemeines Lob oder Kritik zu diesem Text loswerden möchten, würde ich mich über eine E-Mail an sqlserver@rpanther.de freuen.
Zum Abschluss dieses Vorworts möchte ich noch einen persönlichen Hinweis anbringen:
Ich möchte dieses Buch meinem Vater Eckart widmen, der im Jahr vor dem Erscheinen dieses Buches unerwartet früh verstorben ist. Er hat mich bereits im Jahr 1995 dazu motiviert, mich mit dem Thema SQL Performance Tuning zu beschäftigen und dies damals auch zum Thema meiner Diplomarbeit (Optimierung von Datenbankanwendungen) zu machen. Es freut mich im Nachhinein sehr, dass diese Idee seitdem in mir weiterlebt und auch nach fast zwei Jahrzehnten immer noch ein hochinteressantes und stets aktuelles Thema geblieben ist.
Robert Panther
Königstein im April 2014