Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

SQL Server: Performanceprobleme analysieren und beheben
SQL Server: Performanceprobleme analysieren und beheben
SQL Server: Performanceprobleme analysieren und beheben
Ebook141 pages1 hour

SQL Server: Performanceprobleme analysieren und beheben

Rating: 0 out of 5 stars

()

Read preview

About this ebook

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.
LanguageDeutsch
Release dateSep 2, 2016
ISBN9783868026863
SQL Server: Performanceprobleme analysieren und beheben

Read more from Robert Panther

Related to SQL Server

Titles in the series (20)

View More

Related ebooks

Programming For You

View More

Related articles

Reviews for SQL Server

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    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

    Enjoying the preview?
    Page 1 of 1