SQL Server: Performanceprobleme analysieren und beheben
Von Robert Panther
()
Über dieses E-Book
Mehr von Robert Panther lesen
Datenbankentwicklung lernen mit SQL Server 2022: Der praxisorientierte Grundkurs – auch für SQL Server Express Bewertung: 0 von 5 Sternen0 BewertungenDatenbankentwicklung lernen mit SQL Server 2017: Der praxisorientierte Grundkurs Bewertung: 0 von 5 Sternen0 BewertungenDatenbankentwicklung lernen mit SQL Server 2016: Der praxisorientierte Grundkurs Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie SQL Server
Titel in dieser Serie (20)
Abofallen im Netz: Wie Sie teure Klicks vermeiden Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 BewertungenCloud Computing: Rechtliche Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenNeo4j 2.0: Eine Graphdatenbank für alle Bewertung: 0 von 5 Sternen0 BewertungenAgile Softwareentwicklung: Ein Leitfaden für Manager Bewertung: 0 von 5 Sternen0 BewertungenSecurity im E-Commerce: Absicherung von Shopsystemen wie Magento, Shopware und OXID Bewertung: 0 von 5 Sternen0 BewertungenCSS3: Die Referenz für Webentwickler Bewertung: 0 von 5 Sternen0 BewertungenIhr Recht bei Onlineauktionen. Juristische Tipps für eBay und Co. Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenDynamic Proxies: Effizient programmieren Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und TypeScript für C#-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSQL-Abfragen optimieren: Was Entwickler über Performance wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenIhr Recht als Blogger: Juristische Tipps für Blogs, Podcasts und Co. Bewertung: 0 von 5 Sternen0 BewertungenCrime Scene Internet: Ein Streifzug durch das Computer- und Internetstrafrecht Bewertung: 0 von 5 Sternen0 BewertungenVorsicht Suchmaschine: Rechtliche Tipps für Google und Co. Bewertung: 0 von 5 Sternen0 BewertungenIhr Recht als Programmierer: Juristische Tipps für Angestellte, Selbstständige und Freelancer Bewertung: 0 von 5 Sternen0 BewertungenSQL Server: Performanceprobleme analysieren und beheben Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
SQL-Abfragen optimieren: Was Entwickler über Performance wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenAgile Softwareentwicklung: Ein Leitfaden für Manager Bewertung: 0 von 5 Sternen0 BewertungenWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Bewertung: 0 von 5 Sternen0 BewertungenLogging: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenBigData mit JavaScript visualisieren: D3.js für die Darstellung großer Datenmengen einsetzen Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenScrum: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenScrum. Schnelleinstieg (3. Aufl.) Bewertung: 0 von 5 Sternen0 BewertungenAgiles Projektmanagement: Scrum für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenScrum: Agiles Projektmanagement und Scrum erfolgreich anwenden Bewertung: 0 von 5 Sternen0 BewertungenModerne Datenzugriffslösungen mit Entity Framework 6 Bewertung: 0 von 5 Sternen0 BewertungenDas ERP als Erfolgsfaktor für Unternehmen: Grundlagen, innerbetriebliche Funktionen, E-Business, Auswahlmethode Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenWindows-8-Apps für C#-Entwickler: Design-Guidelines, Anleitungen, Best Practices Bewertung: 0 von 5 Sternen0 BewertungenSoftware entwickeln mit Verstand: Was Sie über Wissensarbeit wissen müssen, um Projekte produktiver zu machen Bewertung: 4 von 5 Sternen4/5PowerShell – kurz & gut: Für PowerShell 7 und Windows PowerShell 5 Bewertung: 0 von 5 Sternen0 BewertungenDatenbank-Tuning - Slow Queries und MySQL-Performance: Slow Queries und MySQL-Performance Bewertung: 0 von 5 Sternen0 BewertungenAnalyse und Durchführung eines Benchmarks von fachspezifischer Software für FMEA: Masterarbeit an der Hochschule Ravensburg-Weingarten Bewertung: 0 von 5 Sternen0 BewertungenBPM in der Praxis Bewertung: 0 von 5 Sternen0 BewertungenModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenAgiliät und Continuous Delivery Bewertung: 0 von 5 Sternen0 BewertungenBootstrap kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Bewertung: 0 von 5 Sternen0 BewertungenMein Business, mein Büro, mein Mac: Mac für Unternehmer und Freiberufler Bewertung: 0 von 5 Sternen0 BewertungenPHP 7 und MySQL: Ihr praktischer Einstieg in die Programmierung dynamischer Websites Bewertung: 0 von 5 Sternen0 BewertungenKurzanleitung Project Libre Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenDocker: Webseiten mittels Containerarchitektur erstellen Bewertung: 3 von 5 Sternen3/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5
Rezensionen für SQL Server
0 Bewertungen0 Rezensionen
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