Finden Sie Ihren nächsten buch Favoriten

Werden Sie noch heute Mitglied und lesen Sie 30 Tage kostenlos
SQL Server: Performanceprobleme analysieren und beheben

SQL Server: Performanceprobleme analysieren und beheben

Vorschau lesen

SQL Server: Performanceprobleme analysieren und beheben

Länge:
141 Seiten
1 Stunde
Herausgeber:
Freigegeben:
Sep 2, 2016
ISBN:
9783868026863
Format:
Buch

Beschreibung

Datenbanken bilden das Rückgrat nahezu jeder Businessanwendung. Dabei spielt oft die Performance eine entscheidende Rolle. Solange diese akzeptabel ist, wird das Thema gerne unterbewertet. Wenn sich jedoch die Beschwerden von Anwendern häufen, dass lange Wartezeiten oder gar Time-outs entstehen, wird das Thema Performance schnell kritisch, sodass schnelles und gleichzeitig gut durchdachtes Handeln erforderlich wird. Dieses Buch stellt für alle Versionen bis einschließlich SQL Server 2016 in kompakter Form dar, was zu prüfen ist, und wo mit möglichst geringem Aufwand schnell eine Verbesserung der Performance erzielt werden kann. In separaten Abschnitten des Textes wird ebenso darauf eingegangen, wie eine ausführliche Performanceanalyse aussehen und welche langfristigen Wartungsmaßnahmen man ergreifen kann, um die Datenbankperformance auch dauerhaft auf einem guten Level zu halten.
Herausgeber:
Freigegeben:
Sep 2, 2016
ISBN:
9783868026863
Format:
Buch

Über den Autor


Ähnlich wie SQL Server

Ähnliche Bücher

Ähnliche Artikel

Buchvorschau

SQL Server - Robert Panther

2016

1 Einleitung

1.1 Warum dieses Buch?

Jeder Datenbankadministrator (oder Berater in diesem Umfeld) hat sicherlich schon einmal die Situation erlebt, dass bei einer Anwendung, die bereits längere Zeit problemlos lief, sich die Anwender plötzlich beschweren, dass die Performance unerträglich schlecht und ein normales Arbeiten kaum noch möglich ist. Entweder dauern einzelne Aktionen deutlich zu lange, oder Anwender erhalten eventuell auch Time-out-Meldungen, die belegen, dass eine Aktion zu diesem Zeitpunkt gar nicht ausgeführt werden konnte, weil sie zu lange gedauert hat.

Wenn es schlecht läuft, haben die Klagen der Anwender über die schlechte Performance schon Teile des Managements erreicht; im ungünstigsten Fall waren diese davon sogar unmittelbar selbst betroffen.

Nun gilt es, gleichzeitig schnell zu reagieren, dabei aber dennoch wohlüberlegt zu handeln, denn ein Schnellschuss kann das Eingrenzen des wesentlichen Problems erschweren und im Extremfall sogar zu einer Verschlechterung der Performance führen. Die möglichen Ursachen des Problems können sehr vielseitig sein:

Hardware zu schwach

fehlende Indizes

zu viele Indizes

veraltete Statistiken

schlecht formulierte Abfragen

Sperren und Deadlocks

lang dauernde Abfragen (oder Änderungen) etc.

Daraus ergeben sich auch mindestens genauso viele Lösungsansätze:

Hardware erweitern

fehlende Indizes erstellen

überflüssige Indizes löschen

Dateien auf verschiedene Platten (bzw. Plattensysteme) verteilen

Dateien vergrößern

Wiederherstellungsmodus anpassen

SQL-Abfragen optimieren

richtige Transaktionslevel verwenden

kleinere Transaktionen nutzen etc.

Um schnell Abhilfe zu schaffen, ergibt es natürlich wenig Sinn, alle möglichen Lösungsansätze der Reihe nach durchzugehen. Dies würde einen erheblichen Aufwand verursachen, ohne dass eine Garantie auf Besserung des Problems gegeben wäre. Dazu erfordern einige Ansätze einen Neustart des Serverdienstes (und damit zusätzliche Ausfallzeiten) oder gar Änderungen an der Anwendung selbst. Dabei sollte es das primäre Ziel sein, quasi minimalinvasiv zu agieren, also mit möglichst geringen Änderungen eine möglichst deutliche Verbesserung der Performance zu erreichen. Erst wenn die akuten Probleme beseitigt sind, kann anschließend eine ausführliche Analyse erfolgen, um auch kleinere oder noch nicht akute Probleme zu beseitigen. Insgesamt hat sich ein dreistufiges Vorgehen bewährt:

Erste Hilfe bei Performanceproblemen

Ausführliche Performanceanalyse

Langfristige Maßnahmen

An diesem dreistufigen Vorgehen orientiert sich auch der Aufbau des Buchtexts (Kapitel 2–4), denen ein Kapitel folgt, in dem die wichtigsten mit SQL Server ausgelieferten Tools zur Performanceanalyse kurz dargestellt sind.

Dabei ist insbesondere der erste Teil – wie das Buch insgesamt auch – sehr kompakt gehalten, damit man bei akuten Performanceproblemen nicht lange lesen muss, um eine schnelle Besserung zu erzielen. Aus demselben Grund werden Sie im Buch auch keine langen Listings finden. Wenn Sie ein akutes Performanceproblem bei einer Datenbank haben, möchten Sie sicherlich keine Zeit damit verschwenden, lange SQL-Skripte abzutippen. Stattdessen wird in den meisten Fällen beschrieben, wie Sie Performanceanalysen über die Benutzeroberfläche der diversen Tools durchführen können.¹

Halten Sie dieses Buch also am besten immer in greifbarer Nähe (in der Schreibtischschublade oder unter der Tastatur), sodass Sie es im Ernstfall schnell zur Hand haben.

1.2 Für wen ist dieses Buch gedacht?

Der Text richtet sich primär an Datenbankadministratoren und Berater, die in diesem Umfeld tätig sind. Da die Übergänge zwischen den Tätigkeitsfeldern meist fließend sind, können die Inhalte auch für Anwendungs- und Datenbankentwickler eine wertvolle Hilfe sein.

An Vorkenntnissen werden vor allem Grundkenntnisse mit SQL Server vorausgesetzt, insbesondere T-SQL und der Umgang mit dem SQL Server Management Studio sollten bekannt sein.

1 Im Laufe der Zeit werden Sie diese Aufgaben sicherlich vermehrt über SQL-Skripte durchführen. Wenn Sie aber wissen, welche Daten Sie analysieren müssen, sind im Internet dazu zahlreiche Skriptvarianten zu finden. Über kurz oder lang stellen sich die meisten erfahrenen Datenbankadministratoren eine eigene individuelle Skriptbibliothek zusammen, mit der die Analysen dann auch schnell per SQL-Skript durchgeführt werden können.

2 Erste Hilfe bei Performanceproblemen

2.1 Vorgehensweise

Das Vorgehen zur schnellen Abhilfe von akuten Performanceproblemen ist mit den Sofortmaßnahmen am Unfallort nach einem Verkehrsunfall vergleichbar. Dabei ist der wichtigste Punkt, den man immer im Kopf behalten muss, nicht in Panik oder gar blinden Aktionismus zu verfallen. Auch wenn die Lösung offensichtlich erscheint und der Druck durch die sich beklagenden Anwender (oder schlimmer noch Manager) hoch sein mag, gilt es zwar zügig, aber dennoch nicht übereilt zu handeln. Denn auf der einen Seite kann ein unüberlegter Schnellschuss das akute Problem im Extremfall sogar verschlimmern oder andere Probleme nach sich ziehen. In jedem Fall wird jedoch eine spätere Analyse der Problemursachen erschwert oder sogar gänzlich verhindert, wodurch nicht auszuschließen ist, dass dieselben Probleme bald wieder auftreten.

Blenden Sie Überflüssiges aus. Es geht nicht darum, den Patienten (die Datenbank) von allen großen und kleinen „Wehwehchen" zu befreien oder gar den SQL Server (das Auto) wieder komplett zu reparieren. Stattdessen muss der Fokus darauf liegen, mit minimalinvasiven Eingriffen den laufenden Betrieb wieder zu ermöglichen und dafür zu sorgen, dass die Datenbank ansprechbar bleibt. Dies geschieht in drei Schritten:

Anwenderbefragung

Prüfung des Systemzustands

Ergreifen geeigneter Maßnahmen

Best Practices

Wenn Sie mit mehreren Personen parallel arbeiten können, teilen Sie die Aufgaben auf, um noch weniger Zeit zu verlieren. Während eine Person die Anwender befragt, kann ein Zweiter schon den allgemeinen Zustand des Datenbankservers prüfen. Im Idealfall kann ein Dritter währenddessen das Management beruhigen und damit den anderen beiden den Rücken freihalten. Denn es erschwert die Konzentration auf die Fehlersuche erheblich, wenn man sich gleichzeitig rechtfertigen muss, wo das Problem liegen könnte, und Prognosen abgeben soll, wie lange die Behebung denn dauert.

Befragung der Anwender

Beginnen Sie mit einer kurzen Anamnese, indem Sie dem Mitarbeiter, der das Problem gemeldet hat, ein paar einfache, aber wichtige Fragen stellen:

Wann tritt das Problem auf?

dauerhaft

gelegentlich

zu einer bestimmten Uhrzeit

Wo tritt das Problem auf?

überall

in bestimmten Bereichen der Anwendung

nach Aufruf einer bestimmten Funktionalität in der Anwendung

beim Schreiben oder Lesen von Daten

Bei wem tritt das Problem auf?

einzelner Anwender

bestimmte Gruppe von Anwendern

alle Anwender

Ist das Problem reproduzierbar? (idealerweise auch auf einer Test- oder Pre-Live-Umgebung)

Gibt es irgendwelche gravierenden äußeren Einflüsse, die als Ursache in Frage kommen?

Änderungen an Hardware (z. B. neuer Server oder Storage)

Änderungen an Software (z. B. neue Anwendungsversion)

Mit den Antworten auf diese Fragen lässt sich das Problem meist schon etwas eingrenzen.

Im Idealfall sind die Symptome reproduzierbar, sodass immer, wenn eine bestimmte Aktion ausgeführt wird, diese extrem lange dauert. Damit ist dann meist auch bekannt, welche Abfragen und dahinterliegenden Tabellen genauer analysiert werden sollten.

Aber auch wenn das

Sie haben das Ende dieser Vorschau erreicht. Registrieren Sie sich, um mehr zu lesen!
Seite 1 von 1

Rezensionen

Was die anderen über SQL Server denken

0
0 Bewertungen / 0 Rezensionen
Wie hat es Ihnen gefallen?
Bewertung: 0 von 5 Sternen

Leser-Rezensionen